En RegionGen no me está actualizando el objeto relacionado. A la vuelta del form de update xwork no puede setear el nuevo Country relacionado. Posiblemente por una restricción de hibernate, puesto que el objeto es transaccional:
pojo.Country.id [java.lang.IllegalAccessException: Class ognl.OgnlRuntime can not access a member of class xxxx.pojo.Country with modifiers "private"]
El setter del Id en el pojo es publico, pero seguramente la factory de Spring-Hiber debe restringir el acceso.
Cambio de seteo en el action.
Leo el string y recupero el object a relacionar a través del manager para luego asignarlo
Cambio de annotation en pojo:
La opción updatable a true, sino no lo cambia
@ManyToOne
@JoinColumn(name="country_id", nullable=false, updatable=true)
jueves, 27 de septiembre de 2007
viernes, 14 de septiembre de 2007
Invalid field value (SQL)
Al momento de la inserción tiraba una exception por invalid field 'id' value. En este caso era porque la tabla no estaba generada con el campo 'id' en autoincrement.
viernes, 31 de agosto de 2007
JPA o DaoSupport ?
Con Spring se puede implementar la persistencia con JPA, aprovechando las annontations:
bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
Luego, los accesos en los dao, se hacen genéricos a través del entityManager, pero los métodos son reducidos y no tenemos la potencialidad de hibernate para consultas más flexibles.
Sino, la alternativa de heredar de HibernateDaoSupport de Spring pero al parecer no se pueden usar las annotations de persistencia por lo que las entidades deben mapearse en un xml aparte, externo al .java con los problemas de cambios que conlleva. Para está opción en el xml, el bean sessionFactory que se cablea en dicha clase:
bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
Luego, los accesos en los dao, se hacen genéricos a través del entityManager, pero los métodos son reducidos y no tenemos la potencialidad de hibernate para consultas más flexibles.
Sino, la alternativa de heredar de HibernateDaoSupport de Spring pero al parecer no se pueden usar las annotations de persistencia por lo que las entidades deben mapearse en un xml aparte, externo al .java con los problemas de cambios que conlleva. Para está opción en el xml, el bean sessionFactory que se cablea en dicha clase:
bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
jueves, 23 de agosto de 2007
Hibernate Exception (library)
Al correr fuera de eclipse, parece haber incompatibilidad de jars, la clase perdida se encuentra en un jar dentro del classpath....
Exception in thread "main" java.lang.NoClassDefFoundError: antlr/ANTLRException
at org.hibernate.hql.ast.ASTQueryTranslatorFactory.createQueryTranslator
(ASTQueryTranslatorFactory.java:35)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:74)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCa
che.java:72)
Existe algun problema de versiones con antlr, corregido con otra version del jar.
Exception in thread "main" java.lang.NoClassDefFoundError: antlr/ANTLRException
at org.hibernate.hql.ast.ASTQueryTranslatorFactory.createQueryTranslator
(ASTQueryTranslatorFactory.java:35)
at org.hibernate.engine.query.HQLQueryPlan.
at org.hibernate.engine.query.HQLQueryPlan.
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCa
che.java:72)
Existe algun problema de versiones con antlr, corregido con otra version del jar.
martes, 14 de agosto de 2007
miércoles, 8 de agosto de 2007
JPA queries
Los métodos de la interface EntityManager de JPA no tienen la busqueda byExample de Hibernate.
martes, 7 de agosto de 2007
JPA Exception (detached)
Al momento de persistir un objeto:
javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist
javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist
Debido a la annotation @GeneratedValue en el pojo, el campo referenciado debe estar vacio, se generará a través del JPA Vendor.
Sacando esta notación la inserción se hizo sin problemas.
Suscribirse a:
Entradas (Atom)