Questo è successo a me perché ho aggiunto manualmente una voce al mio database con l'id 0 (zero). Nel mio caso EclipseLink "non poteva" gestire un ID con zero. Quindi ho aggiunto quanto segue al mio persistence.xml:
<property name="eclipselink.allow-zero-id" value="true"/>
Questa proprietà dice a EclipseLink di gestire zero come ID valido.
[1] http://meetrohan.blogspot.de/ 2011/11/eclipselink-null-primary-key.html