2010-05-17 7 views
3

Je veux créer une requête par clé primaire. Supposé J'ai une clé primaire de classe, PersonKey, les propriétés sont nom et id.hibernate Requête par clé primaire

J'ai la classe Person, la propriété est PersonKey, adresse, DOB.

Maintenant, je veux rechercher une personne par clé primaire.

Tout d'abord, je crée instance de PersonKey, et définir le nom devient: Joe et id devenir: 007

puis-je obtenir la personne par ID, par passer la variable clé ???

personne.findByKey (uneClé); , mais la logique ne fait pas de critères

Répondre

5

Oui, vous pouvez. En supposant que le PersonKey est Serializable, il suffit de passer à la méthode get:

PersonKey pk = new PersonKey(007l, "joe"); 
Person person = (Person) session.get(Person.class, pk); 
+0

Pourquoi PersonKey doit être sérialisable? – Reddy

+0

@Reddy A cause de la signature de 'Session.get (Class, Serializable)' –

+0

Merci Pascal, mais pourquoi hiberner forcer la sérialisation? Selon ma compréhension hibernate va générer des instructions SQL et envoie seulement sur le réseau à la base de données, dans ce cas, la sérialisation est inutile .. non? – Reddy

Questions connexes