2015-08-20 1 views
0

Il y a un problème avec la génération d'ID tout en persistant dans la base de données. J'ai ajouté le code suivant à mon fichier d'entité jpa, mais je reçois 0 pour personid.J'ai besoin d'aide pour persister dans la base de données Oracle

@Id 
@Column(unique=true, nullable=false, precision=10, name="PERSONID") 
@SequenceGenerator(name="appUsersSeq", sequenceName="SEQ_PERSON", allocationSize=1) 
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "appUsersSeq") 
private long personid; 

EjbService:

@Stateless 
public class EjbService implements EjbServiceRemote { 

@PersistenceContext(name = "Project1245") 
private EntityManager em; 


@Override 
public void addTperson(Tperson tp) { 
    em.persist(tp); 

} 

} 

Répondre

0

0 est la valeur par défaut pour le type long. L'ID sera défini après l'appel de la requête select pour la séquence associée, qui est généralement exécutée lorsque vous persistez dans l'entité. Est-ce que vous persistez dans l'entité? Dans le cas contraire, publiez la définition de la séquence de la base de données pour la vérifier.

+0

CREATE SEQUENCE "DB" "SEQ_PERSON" MINVALUE 1 MAXVALUE 999999999999999999999999 AUGMENTER PAR 1 AVEC 1 CACHE DÉBUT 20 Noorder NOCYCLE;. ' – coderxyz24

+0

Les enregistrements dans la base de données n'ont * peraonid * valeur 0? Vérifiez-vous la valeur de l'ID d'objet Java après 'persist' l'entité? – Guillermo

+0

Non, il n'y a pas de valeur 0 personid dans ma base de données – coderxyz24