La méthode find dans JPA n'accepte que la clé primaire, est-il possible d'inclure la propriété Version pour rechercher l'entité. Pourquoi voudriez-vous utiliser la propriété version pour trouver une entité?JPA Hibernate Recherche par ID & Version
0
A
Répondre
1
Si vous utilisez un champ de clé primaire de substitution (tel que recommandé par Hibernate), vous devriez être capable d'identifier une ligne par l'identifiant seul.
Le champ Version est utilisé par Hibernate pour s'assurer qu'une entité chargée n'est pas modifiée entre le chargement et la persistance.
Si vous voulez vraiment utiliser l'identifiant et la version que vous avez besoin d'une requête:
Query query = session.createQuery("select from MyTable where id = ? and version =?");
query.setParameter(0, myId);
query.setParameter(1, myVersion);
query.uniqueResult();
Questions connexes
- 1. JPA/Hibernate id Embarqués
- 2. Hibernate JPA recherche deux tables jointes
- 3. Recherche Hibernate et JPA avec transaction JTA
- 4. Recherche JPA/Hibernate sur le champ polymorphes
- 5. Hibernate JPA Persist
- 6. hibernate search + spring3 + jpa
- 7. Spring + JPA + Hibernate
- 8. Hibernate JPA maven
- 9. annotations Hibernate et JPA
- 10. JPA + Hibernate obtenant NoSuchFieldError
- 11. Stratégie JPA ID génération
- 12. colonne de version ne soit pas augmenté avec JPA (Hibernate)
- 13. JPA 2.0 Fournisseur Hibernate
- 14. Ordre dynamique par en JPA/Hibernate?
- 15. Arbre avec JPA [/ Hibernate]
- 16. Hibernate + MySQL + JPA
- 17. Hibernate/JPA: em.merge (nouveau MyEntity (id)) renvoie proxy sans collections
- 18. JPA, Hibernate, cartographie OneToMany
- 19. Spring + Hibernate JPA Question
- 20. entité JPA sans id
- 21. JPA/Hibernate Join Query
- 22. JPA, MySQL, Hibernate & Maven Skeleton
- 23. Jpa (hibernate) return type
- 24. Spring JPA (Hibernate) avec tomcat
- 25. Simple H2 et Hibernate/JPA
- 26. Hibernate JPA cascade delete issue
- 27. JPA (hibernate) @Id Erreur: Causée par: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: La table 'DbName.system_sequences' n'existe pas
- 28. hibernate JPA c3p0 problème
- 29. Recherche MySQL par ID spécial
- 30. Recherche par ID sur tinysong.com
Je suis d'accord sur la clé de substitution; mais j'ai une exigence pour valider la version d'un objet avant de fusionner avec l'entité existante dans la base de données. L'idée était d'interroger la base de données avec l'Id & Version en évitant la vérification manuelle de la version. L'approche que vous avez suggérée pourrait fonctionner mais je cherche une approche générique car les colonnes Id dans toutes mes entités ont des noms différents. – Rakesh
Vous ne pouviez pas simplement obtenir l'entité avec l'ID et ensuite obtenir la version de celui-ci afin de confirmer la version avant la fusion? Il n'y a rien à gagner en utilisant l'identifiant et la version car une ligne n'a qu'une seule version qui ne fait pas partie de la clé droite? –
l'approche que vous avez suggéré plus tôt avec la requête a résolu mon problème et j'ai pu interroger en utilisant à la fois l'entité et la version. Même si les entités utilisent des conventions de nommage différentes pour les identifiants, je pourrais utiliser id et hibernate tout en générant le sql remplacé l'identifiant avec le nom d'identifiant correspondant. – Rakesh