Estoy usando anotaciones de hibernación. ¿Cómo agregar métodos al objeto POJO? Por ejemplo, tengo el método "getChildNodes", asociado a la base de datos, pero también quiero agregar el método recursivo "getAllChildNodes". Obtengo la excepción "org.hibernate.PropertyNotFoundException: no se pudo encontrar un setter para el progreso de la propiedad en clase" cuando lo hago.Java, Anotaciones de Hibernate, ¿Cómo agregar métodos al objeto POJO?
Respuesta
Si interpreto esto como "¿Cómo puedo añadir un método que no está relacionado con la persistencia", entonces es necesario utilizar la anotación @Transient
en el método getAllChildNodes()
Estoy confundido. ¿No agrega más funcionalidades adicionales como getAllChildNodes(), o publish(), por ejemplo, que ya no sea un POJO? ¿Y por lo tanto viola un principio de diseño de los objetos de hibernación que tienen que ser POJO y, por lo tanto, es "malo"? Pero, ¿por qué sería malo? Quiero hacer esto, pero no estoy seguro si es el camino correcto. – pete
Abra el archivo .java y escriba un método denominado getAllChildNodes()
.
Hibernate no escribe el código para usted, asigna los campos de su base de datos a su código. Eso es todo. Si desea tener una lógica adicional en las clases de su dominio/modelo además de los get y setters normales para sus propiedades, tendrá que agregarlas usted mismo.
Hay dos maneras de definir la estructura de su entidad .
- utilizando anotaciones sobre las variables de instancia de su entidad o
- utilizando anotaciones sobre los métodos de acceso de su entidad
Al utilizar las anotaciones en los métodos getter, Hibernate asume que cada getXXX (y isXxx para tipos booleanos) representa la definición de una propiedad persistente. Y esto se mantiene incluso si ese getter particular no contiene ninguna anotación, como sucede en su caso.
Hibernate también espera encontrar un método de configuración coincidente para cada propiedad persistente. Y en su caso eso es lo que falta y causa la excepción.
Puede resolver este problema declarando su getter personalizado como @Transient
que dice que este getter no representa una propiedad persistente. Otra forma sería convertir la entidad para usar anotaciones en las variables de instancia. Este último sería mi elección personal.
- 1. ¿Cómo agregar nuevos métodos al objeto jQuery?
- 2. Java: ¿usa anotaciones y métodos de interceptación?
- 3. Herencia en Hibernate ¿Anotaciones?
- 4. ¿Puede la herramienta Hibernate generar JPA POJO?
- 5. ¿Qué significa exactamente el término antiguo objeto Java plano (POJO)?
- 6. Interceptores Hibernate con anotaciones
- 7. Hibernate Enum mapping utilizando anotaciones
- 8. POJO con otras referencias POJO
- 9. La mejor manera de agregar anotaciones a métodos heredados
- 10. Conversión de hibernate hbm.xml a anotaciones
- 11. Migración de Hibernate a JPA sin anotaciones
- 12. Java: ¿Debo agregar una anotación @Override al implementar métodos abstractos?
- 13. Hibernate: ¿diferencia entre anotaciones y anotaciones de commons?
- 14. anotaciones Java
- 15. Hibernate: asignación de archivos o anotaciones?
- 16. JPA POJO como objeto de datos
- 17. Anotaciones de Java Adapter
- 18. Spring + Hibernate con anotaciones: Ninguna sesión de Hibernate vinculada al thread
- 19. usando Hibernate UUIDGenerator a través de anotaciones
- 20. ¿Mapeo simple Java Xml a POJO mapeo/encuadernación?
- 21. ¿Cómo agregar propiedades al objeto anónimo dinámicamente?
- 22. Cómo agregar métodos dinámicamente
- 23. Hibernate: javax.naming.NoInitialContextException (asignación de componentes mediante anotaciones)
- 24. Cómo generar clases hyperate POJO a partir de tablas DB
- 25. Columna múltiple Unir en Hibernate/JPA Anotaciones
- 26. Asignación de tipos de enumeración con Anotaciones de Hibernate
- 27. ¿Es posible usar anotaciones y archivos hbm.xml en el mismo proyecto en Hibernate?
- 28. Intentando asignar postgres enum a Hibernate/JPA pojo
- 29. agregar anotaciones de datos programáticamente
- 30. ¿Cómo convertir POJO a JSON y viceversa?
muestra tu código. – Bozho