J'utilise les annotations d'hibernation. Comment ajouter des méthodes à l'objet POJO? Par exemple, j'ai la méthode "getChildNodes", associée à la base de données, mais je veux aussi ajouter la méthode récursive "getAllChildNodes". Je reçois "org.hibernate.PropertyNotFoundException: Impossible de trouver un setter pour la progression de la propriété dans la classe" exception quand je le fais.Java, annotations Hibernate, comment ajouter des méthodes à l'objet POJO?
Répondre
Si j'interprète cela comme « comment puis-je ajouter une méthode qui n'est pas lié à la persistance », alors vous devez utiliser l'annotation @Transient
sur la méthode getAllChildNodes()
Je suis confus. N'ajoute-t-il plus de fonctionnalités supplémentaires telles que getAllChildNodes(), ou publish() par exemple, ne le rend plus un POJO? Et viole donc un principe de conception des objets d'hibernation devant être des POJO et est donc "mauvais"? Mais pourquoi serait-ce mauvais? Je veux faire cela mais je ne suis pas sûr que ce soit la bonne façon. – pete
Ouvrez le fichier .java et écrivez une méthode nommée getAllChildNodes()
.
Hibernate n'écrit pas de code pour vous, il mappe les champs de votre base de données sur votre code. C'est tout. Si vous voulez avoir une logique supplémentaire dans vos classes de domaine/modèle en plus des getters et setters normaux pour vos propriétés, vous devrez les ajouter vous-même.
Il existe deux façons de définir la structure de votre entité .
- utilisant des annotations sur les variables d'instance de votre entité ou
- utilisant des annotations sur les méthodes de lecture de votre entité
Lorsque vous utilisez les annotations sur les méthodes de lecture, Hibernate suppose que tous les getXXX (et isXxx pour les types booléens) représente la définition d'une propriété persistante. Et cela est valable même si ce getter particulier ne contient aucune annotation, comme cela se produit dans votre cas. Hibernate s'attend également à trouver une méthode de mise en correspondance pour chaque propriété persistante. Et dans votre cas c'est ce qui manque et provoque l'exception.
Vous pouvez résoudre ce problème en déclarant votre getter personnalisé comme @Transient
qui indique que ce getter ne représente pas une propriété persistante. Une autre méthode consiste à convertir l'entité pour utiliser des annotations sur les variables d'instance. Ce dernier serait mon choix personnel.
- 1. Héritage des annotations Hibernate?
- 2. Surcharge Hibernate mapping POJO
- 3. Simple Java Xml à POJO mappage/liaison?
- 4. Comment générer des classes POJO Hibernate par programmation?
- 5. annotations hibernate, requête hql par des interfaces?
- 6. Ajouter des annotations aléatoires à MKMapView
- 7. Annotations Hibernate, auto-incrémenté
- 8. annotations Hibernate @ManyToMany
- 9. Hibernate Annotations recherche ne Héritée
- 10. Mappage des types enum avec des annotations Hibernate
- 11. Comment puis-je hériter des filtres Hibernate avec des annotations?
- 12. Créer dynamiquement Java Pojo
- 13. Java Swing Générer JTable à partir de POJO à l'exécution
- 14. Combiner des annotations en Java
- 15. Comment ajouter des annotations à une image dans Qt?
- 16. Sur les classes abstraites dans les annotations Java et Hibernate
- 17. Hibernate autre mappage de type POJO
- 18. Comment «découper» un POJO
- 19. Comment réécrire ce mappage hibernate avec des annotations?
- 20. Convertir des composants Pojo à EJB3
- 21. Fichier HTML: ajouter des annotations via IHTMLDocument
- 22. annotations Java
- 23. Java: Annotations annotées (et des valeurs passant)
- 24. Annotations Java dans eclipse Tooltip?
- 25. Mappage d'une clé naturelle avec des annotations Hibernate
- 26. Comment ajouter des annotations dans la vue Carte Dans Iphone
- 27. Clé primaire composée dans Hibernate utilisant des annotations
- 28. Annotations utiles de Java
- 29. débogage des annotations hibernate, pouvez-vous produire le fichier hbm?
- 30. JPA Annotations dans Android
montrez votre code. – Bozho