Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp
Hibernate version:
3.2 GA
Mapping documents:
Using Annotations
Code between sessionFactory.openSession() and session.close():
Using Springs HibernateTemplate
Full stack trace of any exception that occurs:
Code:
2007-02-06 08:18:46,955 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/eswd].[action]] Servlet.service() for servlet action threw exception
org.hibernate.exception.GenericJDBCException: could not load an entity: [com.bofa.esm.dataaccess.apengine.vo.ActivityPlanCompositeStatusVO#1170767924301]
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1798)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2977)
at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:393)
at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:374)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:137)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:193)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:101)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:846)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:266)
at org.hibernate.type.EntityType.resolve(EntityType.java:303)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:116)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842)
at org.hibernate.loader.Loader.doQuery(Loader.java:717)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2144)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2028)
at org.hibernate.loader.Loader.list(Loader.java:2023)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:393)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:839)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:362)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:830)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:826)
at com.bofa.esm.dataaccess.apengine.dao.HibernateActivityPlanStatusDaoImpl.findByCompositePlanId(HibernateActivityPlanStatusDaoImpl.java:30)
at com.bofa.esm.swd.eswd.status.EswdStatusFacade.getRegionalPlansForComposite(EswdStatusFacade.java:348)
at com.bofa.esm.swd.common.view.action.ActivityPlanStatusActions.planId(ActivityPlanStatusActions.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:320)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:419)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
Caused by: com.ibm.db2.jcc.c.zd: Invalid data conversion:Requested conversion would result in a loss of precision of 1170767924842
at com.ibm.db2.jcc.c.q.d(q.java:1403)
at com.ibm.db2.jcc.c.r.E(r.java:934)
at com.ibm.db2.jcc.c.rc.getInt(rc.java:682)
at com.ibm.db2.jcc.c.rc.getInt(rc.java:1155)
at org.jboss.resource.adapter.jdbc.WrappedResultSet.getInt(WrappedResultSet.java:692)
at org.hibernate.type.IntegerType.get(IntegerType.java:28)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:113)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:102)
at org.hibernate.persister.collection.AbstractCollectionPersister.readIndex(AbstractCollectionPersister.java:708)
at org.hibernate.collection.PersistentList.readFrom(PersistentList.java:358)
at org.hibernate.loader.Loader.readCollectionElement(Loader.java:994)
at org.hibernate.loader.Loader.readCollectionElements(Loader.java:634)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:579)
at org.hibernate.loader.Loader.doQuery(Loader.java:689)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1784)
Name and version of the database you are using:DB2 8.something...
The generated SQL (show_sql=true):Code:
select
activitypl0_.PLAN_ID as PLAN1_23_,
activitypl0_.START_TIME as START2_23_,
activitypl0_.STATUS as STATUS23_,
activitypl0_.REGION_NUMBER as REGION4_23_,
activitypl0_.COMPLETION_TIME as COMPLETION5_23_,
activitypl0_.NUM_ENDPOINTS as NUM6_23_,
activitypl0_.COMP_PLAN_ID as COMP7_23_
from INV4.ASM_ACT_PLAN activitypl0_
where activitypl0_.COMP_PLAN_ID=?
select
activitypl0_.COMP_PLAN_ID as COMP1_22_4_,
activitypl0_.START_TIME as START2_22_4_,
activitypl0_.CONTROLLING_GRP as CONTROLL3_22_4_,
activitypl0_.STATUS as STATUS22_4_,
activitypl0_.ORIGINATING_APP as ORIGINAT5_22_4_,
activitypl0_.COMPLETION_TIME as COMPLETION6_22_4_,
activitypl0_.DEADLINE as DEADLINE22_4_,
activitypl0_.JOB_DISABLED as JOB8_22_4_,
activitypl0_.JOB_NAME as JOB9_22_4_,
activitypl0_.PRINCIPAL_ID as PRINCIPAL10_22_4_,
activitypl0_.SCHEDULED_START_TIME as SCHEDULED11_22_4_,
activitypl1_.COMP_PLAN_ID as COMP7_6_,
activitypl1_.PLAN_ID as PLAN1_6_,
activitypl1_.PLAN_ID as PLAN1_23_0_,
activitypl1_.START_TIME as START2_23_0_,
activitypl1_.STATUS as STATUS23_0_,
activitypl1_.REGION_NUMBER as REGION4_23_0_,
activitypl1_.COMPLETION_TIME as COMPLETION5_23_0_,
activitypl1_.NUM_ENDPOINTS as NUM6_23_0_,
activitypl1_.COMP_PLAN_ID as COMP7_23_0_,
activityst2_.PLAN_ID as PLAN10_7_,
activityst2_.STATUS_ID as STATUS1_7_,
activityst2_.EXECUTE_ORDER as EXECUTE8_7_,
activityst2_.STATUS_ID as STATUS1_25_1_,
activityst2_.PRIORITY as PRIORITY25_1_,
activityst2_.START_TIME as START3_25_1_,
activityst2_.STATUS as STATUS25_1_,
activityst2_.COMPLETION_TIME as COMPLETION5_25_1_,
activityst2_.PLAN_ID as PLAN10_25_1_,
activityst2_.ACTIVITY_NAME as ACTIVITY6_25_1_,
activityst2_.ERROR_INFO as ERROR7_25_1_,
activityst2_.EXECUTE_ORDER as EXECUTE8_25_1_,
activityst2_.APPL_SPEC_ACT_ID as APPL9_25_1_,
activitypl3_.PLAN_ID as PLAN6_8_,
activitypl3_.RECORD_ID as RECORD1_8_,
activitypl3_.RECORD_ID as RECORD1_24_2_,
activitypl3_.TARGET_NAME as TARGET2_24_2_,
activitypl3_.APPLICATION as APPLICAT3_24_2_,
activitypl3_.PRINCIPAL_ID as PRINCIPAL4_24_2_,
activitypl3_.PROFILE as PROFILE24_2_,
activitypl3_.PLAN_ID as PLAN6_24_2_,
rdsvalidat4_.RECORD_ID as RECORD1_26_3_,
rdsvalidat4_.COMP_PLAN_ID as COMP2_26_3_,
rdsvalidat4_.AMBIG_ENDPOINT as AMBIG3_26_3_,
rdsvalidat4_.ENDPOINT_AUTH_FAILURE as ENDPOINT4_26_3_,
rdsvalidat4_.PKG_AUTH_FAILURE as PKG5_26_3_,
rdsvalidat4_.PKG_NOT_ON_TMR as PKG6_26_3_,
rdsvalidat4_.UNKNOWN_ENDPOINTS as UNKNOWN7_26_3_,
rdsvalidat4_.VALIDATION_TYPE as VALIDATION8_26_3_
from INV4.ASM_ACT_PLAN_COMPOSITE activitypl0_ left
outer join INV4.ASM_ACT_PLAN activitypl1_ on activitypl0_.COMP_PLAN_ID=activitypl1_.COMP_PLAN_ID
left outer join INV4.ASM_ACT_STATUS activityst2_ on activitypl1_.PLAN_ID=activityst2_.PLAN_ID
left outer join INV4.ASM_ACT_PLAN_TARGETS activitypl3_ on activitypl1_.PLAN_ID=activitypl3_.PLAN_ID
left outer join INV4.ASM_RDS_VALIDATION rdsvalidat4_ on activitypl0_.COMP_PLAN_ID=rdsvalidat4_.RECORD_ID
where activitypl0_.COMP_PLAN_ID=?
Debug level Hibernate log excerpt:Not sure...
I was trying to switch out two OneToMany associations from Sets to Lists, but when I did that an unrelated ManyToOne started throwing the above exception when I try to load.
The OneToMany's look like:
Code:
/**
* @return Returns the activityStatuses.
*
*/
@OneToMany(mappedBy = "activityPlanStatus", targetEntity = ActivityStatusVO.class, fetch = FetchType.EAGER)
@org.hibernate.annotations.IndexColumn(name="EXECUTE_ORDER")
@org.hibernate.annotations.Cascade( {
org.hibernate.annotations.CascadeType.ALL,
org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
public List<ActivityStatusVO> getActivityStatuses() {
return activityStatuses;
}
/**
* @param activityStatuses
* The activityStatuses to set.
*/
public void setActivityStatuses(List<ActivityStatusVO> activityStatuses) {
this.activityStatuses = activityStatuses;
}
/**
* @return Returns the activityPlanTargets.
*
*/
@OneToMany(mappedBy = "activityPlanStatus", targetEntity = ActivityPlanTargetVO.class, fetch = FetchType.EAGER)
@org.hibernate.annotations.IndexColumn(name="RECORD_ID")
@org.hibernate.annotations.Cascade( {
org.hibernate.annotations.CascadeType.ALL,
org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
public List<ActivityPlanTargetVO> getActivityPlanTargets() {
return activityPlanTargets;
}
/**
* @param activityPlanTargets
* The activityPlanTargets to set.
*/
public void setActivityPlanTargets(
List<ActivityPlanTargetVO> activityPlanTargets) {
this.activityPlanTargets = activityPlanTargets;
}
And the ManyToOne:
Code:
/**
* @return Returns the activityPlanCompositeStatus.
*/
@ManyToOne
@JoinColumn(name = "COMP_PLAN_ID")
public ActivityPlanCompositeStatusVO getActivityPlanCompositeStatus() {
return activityPlanCompositeStatus;
}
/**
* @param activityPlanCompositeStatus
* The activityPlanCompositeStatus to set.
*/
public void setActivityPlanCompositeStatus(
ActivityPlanCompositeStatusVO activityPlanCompositeStatus) {
this.activityPlanCompositeStatus = activityPlanCompositeStatus;
}
The ManyToOne is joined on a DB2 BIGINT, and the ID on the One-side is a Long. It seems from the stack trace that Hibernate is trying to convert this to an Integer instead, hence the loss of precision error. Not sure how to fix this, however.