hmm. it seems to be a data issue but a strange one. If the child entity
(OrderPosition) has no reference to an entity in ContainerShipment (parent), i
will get this stack trace. Normally i would think that attribute
List<OrderPosition> orderPositions would be null in ContainerShipment and
everything is fine but somehow i need at least one "n" relation. Never
experienced this....
Here is my back reference in OrderPosition.
@ManyToOne
@JoinColumn(name = "con_ship_id", referencedColumnName = "id")
ContainerShipment containerShipment;
still confused.
---
regards
Marc Logemann
http://www.logemann.org
http://www.logentis.de
Am 29.08.2011 um 23:57 schrieb Marc Logemann:
> Hi,
>
> aother openjpa thing. Most likely again not a bug but i will try ;-)
>
> I have a normal 1:n relation in my ContainerShipment class which works pretty
> well.
>
> @OneToMany(mappedBy = "containerShipment", cascade = CascadeType.ALL)
> List<OrderPosition> orderPositions;
>
> but as soon as i annotate with FetchType.EAGER...
>
> @OneToMany(mappedBy = "containerShipment", cascade = CascadeType.ALL,
> fetch = FetchType.EAGER)
> List<OrderPosition> orderPositions;
>
> i get this stack trace and i really dont have a clue. I checked gazillions of
> things w/o success. I also made sure that every record as a perfect relation
> so that i can be sure thats not a data content issue. Any ideas?
>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> </pre></p><p><b>root cause</b> <pre>java.lang.ClassCastException:
> org.apache.openjpa.util.IntId cannot be cast to
> de.logentis.bwh.model.ContainerShipment
> de.logentis.bwh.model.OrderPosition.pcReplaceField(OrderPosition.java)
>
> org.apache.openjpa.kernel.StateManagerImpl.replaceField(StateManagerImpl.java:3162)
>
> org.apache.openjpa.kernel.StateManagerImpl.storeObjectField(StateManagerImpl.java:2596)
>
> org.apache.openjpa.kernel.StateManagerImpl.storeObject(StateManagerImpl.java:2586)
>
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setMappedBy(JDBCStoreManager.java:505)
>
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:431)
>
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:333)
>
> org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:112)
>
> org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
> org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:1027)
> org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:985)
> org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:907)
>
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1041)
> org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:280)
>
> org.apache.openjpa.jdbc.sql.SelectImpl$SelectResult.load(SelectImpl.java:2381)
>
> org.apache.openjpa.jdbc.meta.strats.RelationToManyInverseKeyFieldStrategy.loadElement(RelationToManyInverseKeyFieldStrategy.java:90)
>
> org.apache.openjpa.jdbc.meta.strats.RelationCollectionInverseKeyFieldStrategy.loadElement(RelationCollectionInverseKeyFieldStrategy.java:76)
>
> org.apache.openjpa.jdbc.meta.strats.StoreCollectionFieldStrategy.processEagerParallelResult(StoreCollectionFieldStrategy.java:312)
>
> org.apache.openjpa.jdbc.meta.strats.StoreCollectionFieldStrategy.loadEagerParallel(StoreCollectionFieldStrategy.java:246)
>
> org.apache.openjpa.jdbc.meta.FieldMapping.loadEagerParallel(FieldMapping.java:916)
>
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1114)
>
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1067)
>
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:438)
>
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:333)
>
> org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:112)
>
> org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
> org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:1027)
> org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:985)
> org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:907)
>
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1041)
> org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:280)
>
> org.apache.openjpa.jdbc.sql.SelectImpl$SelectResult.load(SelectImpl.java:2381)
> org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:274)
>
> org.apache.openjpa.jdbc.kernel.InstanceResultObjectProvider.getResultObject(InstanceResultObjectProvider.java:59)
>
> org.apache.openjpa.kernel.QueryImpl$PackingResultObjectProvider.getResultObject(QueryImpl.java:2075)
>
> org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:36)
> org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1251)
> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1007)
> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:863)
> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:794)
>
> org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:542)
> org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:315)
>
> org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:331)
>
> org.springframework.data.jpa.repository.support.SimpleJpaRepository.readPage(SimpleJpaRepository.java:434)
>
> org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll(SimpleJpaRepository.java:303)
>
> org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll(SimpleJpaRepository.java:260)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> java.lang.reflect.Method.invoke(Method.java:597)
>
> org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:361)
>
> org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:342)
>
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
>
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>
> org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155)
>
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
> $Proxy135.findAll(Unknown Source)
>
> de.netstorsys.controller.rest.ContainerShipmentRestController.showAll(ContainerShipmentRestController.java:51)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> java.lang.reflect.Method.invoke(Method.java:597)
>
> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
>
> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
>
> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
>
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
>
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
>
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
>
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>
> ---
> regards
> Marc Logemann
>
>
>