Spring data jpa enregistrer pouvez pas obtenir l'id
Mon id de l'entité est généré, et ça marchait très bien quand j'utilise DAO au lieu de Spring data JPA.
@Id
@Column(name = TABLE_COLUM_NAME_ID)
@GeneratedValue
private int id;
Maintenant, j'ai commencer à utiliser Spring data JPA, et après j'appelle repository.save(myboject)
, ou repository.saveAndFlush(myobject)
, j'appelle myobject.getId()
. Mais l'id est jamais renseigné.
Je recherche dans ma base de données et l'objet est dans la base de données et le code est correct.
Personne ne sait pourquoi l'id n'est pas réglé après que j'ai appelé save()
? Je n'ai pas de problème lorsque j'utilise entitymanager.save()
.
OriginalL'auteur Grey | 2013-05-03
Vous devez vous connecter pour publier un commentaire.
Essayer cela comme
Puis, après appel à
getId()
;Le problème est MyEntity requestEntity; savedEntity = repositroy.enregistrer(requestEntity). L'Id n'est pas dans requestEntity mais dans savedEntity
Merci @Gris! Ce commentaire il y a de quoi attachés tout pour moi.
Ne fonctionne pas avec
PagingAndSortingRepository
OriginalL'auteur NPKR
Je crois que ce post répond à votre question:
Pourquoi utiliser retourné instance après save() sur Spring Data JPA Référentiel?
La
repository.save()
méthode retourne en fait un objet similaire à celui JPAentityManager.merge()
et l'objet retourné est celui qui aura le set ID.OriginalL'auteur wrschneider
Essayer de préciser la stratégie pour
@GeneratedValue
commeAUTO est la valeur par défaut: docs.oracle.com/javaee/5/api/javax/persistence/...
OriginalL'auteur TheKojuEffect
repository.saveAndFlush();
méthode:@GeneratedValue(strategy = GenerationType.AUTO)
) au domaine connexe(id
):OriginalL'auteur Celik
Cette méthode retourne l'sauvé
id
Maintenant vous avez votre
id
.OriginalL'auteur bpedroso