Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Persisting ElementCollection from embedded Object

Hi James,
It turned out the problem that I have is not related with the embedded ElementCollection mapping. It is related with having complex type in Map attribute. Here is the annotations for the Map attribute

  @ElementCollection
  @MapKeyColumn(name = "IDENTIFIER")
  @CollectionTable(name = "CND_TABLE",
            joinColumns = @JoinColumn(name = "CND_ID", referencedColumnName="ID"))
  private Map<String, QualifiedValue> qualifiedNvs = new HashMap<String, QualifiedValue>();
--------------------------------------------------------------------------------------------------------------------------------------------

Here is the annotations for  QualifiedValue class
import java.io.Serializable;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Embeddable;

import com.ciena.util.ToStringBuilder;

@Embeddable
public class QualifiedValue implements Serializable {

    private static final long serialVersionUID = 1L;

    @Basic
    @Column(name = "VALUE")
    private String value;

    @Basic
    @Column(name = "QUALIFIER")
    private String qualifier;

    public QualifiedValue() {
    }
}

I found this https://bugs.eclipse.org/bugs/attachment.cgi?id=171638 but I couldn't get mine working with the recommended changes.

Thanks
Aysun

-----Original Message-----
From: eclipselink-users-bounces@xxxxxxxxxxx [mailto:eclipselink-users-bounces@xxxxxxxxxxx] On Behalf Of James Sutherland
Sent: Thursday, March 24, 2011 1:22 PM
To: eclipselink-users@xxxxxxxxxxx
Subject: Re: [eclipselink-users] Persisting ElementCollection from embedded Object


Could you log a bug for the first issue, for the failed JPQL, it should work.

For the second, please include you annoations/xml for the classes involved.



Alay, Aysun wrote:
>
> Hi all,
>
> I have another problem regarding to elementCollection mapping inside
> embedded object.  I am getting the following exception from EclipseLink if
> there are more than one attributes mapped with ElementCollection from an
> embedded object.
>
> Exception [EclipseLink-0] (Eclipse Persistence Services -
> 2.1.2.v20101206-r8635):
> org.eclipse.persistence.exceptions.IntegrityException
> Descriptor Exceptions:
> ---------------------------------------------------------
>
> Runtime Exceptions:
> ---------------------------------------------------------
>
> java.lang.NullPointerException
>
> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
>
>                 at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:471)
>                 at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:406)
>                 at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:666)
>                 at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:615)
>               at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:228)
>                 at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:389)
>                 at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:164)
>                 at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:221)
>                 at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:209)
>                 at
> weblogic.deployment.TransactionalEntityManagerProxyImpl.newPersistenceContext(TransactionalEntityManagerProxyImpl.java:65)
>                 at
> weblogic.deployment.BasePersistenceContextProxyImpl.getPersistenceContext(BasePersistenceContextProxyImpl.java:170)
>                 at
> weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:101)
>                 at
> weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:77)
>                 at
> weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:87)
>                 at
> weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:18)
>                 at $Proxy59.persist(Unknown Source)
>
>                 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:597)
>                 at
> com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
>                 at
> com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
>                 at
> com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>                 at
> com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>                 at
> com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
>                 at
> com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>                 at $Proxy135.onMessage(Unknown Source)
>                 at
> weblogic.ejb.container.internal.MDListener.execute(MDListener.java:519)
>                 at
> weblogic.ejb.container.internal.MDListener.run(MDListener.java:816)
>                 at
> weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
>                 at
> weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
>                 at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
>
> Descriptor Exceptions:
> ---------------------------------------------------------
>
> Runtime Exceptions:
> ---------------------------------------------------------
>
>
> java.lang.NullPointerException
>                 at
> org.eclipse.persistence.internal.queries.MappedKeyMapContainerPolicy.processAdditionalWritableMapKeyFields(MappedKeyMapContainerPolicy.java:620)
>                 at
> org.eclipse.persistence.internal.descriptors.ObjectBuilder.initialize(ObjectBuilder.java:2669)
>                 at
> org.eclipse.persistence.descriptors.ClassDescriptor.initialize(ClassDescriptor.java:2743)
>                 at
> org.eclipse.persistence.mappings.AggregateObjectMapping.initialize(AggregateObjectMapping.java:1070)
>                 at
> org.eclipse.persistence.descriptors.ClassDescriptor.initialize(ClassDescriptor.java:2659)
>                 at
> org.eclipse.persistence.mappings.AggregateObjectMapping.initialize(AggregateObjectMapping.java:1070)
>                 at
> org.eclipse.persistence.descriptors.ClassDescriptor.initialize(ClassDescriptor.java:2659)
>                 at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:448)
>                 at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:406)
>                 at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:666)
>                 at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:615)
>               at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:228)
>                 at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:389)
>                 at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:164)
>                 at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:221)
>                 at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:209)
>                 at
> weblogic.deployment.TransactionalEntityManagerProxyImpl.newPersistenceContext(TransactionalEntityManagerProxyImpl.java:65)
>                 at
> weblogic.deployment.BasePersistenceContextProxyImpl.getPersistenceContext(BasePersistenceContextProxyImpl.java:170)
>                 at
> weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:101)
>                 at
> weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:77)
>                 at
> weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:87)
>                 at
> weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:18)
>                 at $Proxy59.persist(Unknown Source)
>
>             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:597)
>                 at
> com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
>                 at
> com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
>                 at
> com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>                 at
> com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>                 at
> com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
>                 at
> com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>                 at $Proxy135.onMessage(Unknown Source)
>                 at
> weblogic.ejb.container.internal.MDListener.execute(MDListener.java:519)
>                 at
> weblogic.ejb.container.internal.MDListener.run(MDListener.java:816)
>                 at
> weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
>                 at
> weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
>                 at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
>
>
> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
>                 at java.util.ArrayList.RangeCheck(ArrayList.java:547)
>                 at java.util.ArrayList.get(ArrayList.java:322)
>                 at
> org.eclipse.persistence.internal.descriptors.ObjectBuilder.getPrimaryKeyClassifications(ObjectBuilder.java:2591)
>                 at
> org.eclipse.persistence.mappings.AggregateObjectMapping.postInitialize(AggregateObjectMapping.java:1265)
>                 at
> org.eclipse.persistence.descriptors.ClassDescriptor.postInitialize(ClassDescriptor.java:3209)
>                 at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:462)
>                 at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:406)
>                 at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:666)
>                 at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:615)
>               at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:228)
>                 at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:389)
>                 at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:164)
>                 at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:221)
>                 at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:209)
>                 at
> weblogic.deployment.TransactionalEntityManagerProxyImpl.newPersistenceContext(TransactionalEntityManagerProxyImpl.java:65)
>                 at
> weblogic.deployment.BasePersistenceContextProxyImpl.getPersistenceContext(BasePersistenceContextProxyImpl.java:170)
>                 at
> weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:101)
>                 at
> weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:77)
>                 at
> weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:87)
>                 at
> weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:18)
>                 at $Proxy59.persist(Unknown Source)
>
>        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:597)
>                 at
> com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
>                 at
> com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
>                 at
> com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>                 at
> com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>                 at
> com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
>                 at
> com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>                 at
> com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>                 at $Proxy135.onMessage(Unknown Source)
>                 at
> weblogic.ejb.container.internal.MDListener.execute(MDListener.java:519)
>                 at
> weblogic.ejb.container.internal.MDListener.run(MDListener.java:816)
>                 at
> weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
>                 at
> weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
>                 at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
>>
> ####<Mar 17, 2011 12:20:34 PM EDT> <Notice> <Stdout> <gaw-bli-01>
> <OneControlServer> <[ACTIVE] ExecuteThread: '2' for queue:
> 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <>
> <1300378834246> <BEA-000000> <<Mar 17, 2011 12:20:34 PM EDT> <Alert>
> <EclipseLink> <BEA-2005000> <2011-03-17
> 12:20:34.23--ServerSession(24130647)--Local Exception Stack:
> Exception [EclipseLink-0] (Eclipse Persistence Services -
> 2.1.2.v20101206-r8635):
> org.eclipse.persistence.exceptions.IntegrityException
> Descriptor Exceptions:
> ---------------------------------------------------------
>
> Runtime Exceptions:
> ---------------------------------------------------------
>
>
>


-----
http://wiki.eclipse.org/User:James.sutherland.oracle.com James Sutherland
http://www.eclipse.org/eclipselink/
 EclipseLink ,  http://www.oracle.com/technology/products/ias/toplink/
TopLink
Wiki:  http://wiki.eclipse.org/EclipseLink EclipseLink ,
http://wiki.oracle.com/page/TopLink TopLink
Forums:  http://forums.oracle.com/forums/forum.jspa?forumID=48 TopLink ,
http://www.nabble.com/EclipseLink-f26430.html EclipseLink
Book:  http://en.wikibooks.org/wiki/Java_Persistence Java Persistence
Blog:  http://java-persistence-performance.blogspot.com/ Java Persistence
Performance
--
View this message in context: http://old.nabble.com/Query-on-Map-attribute-from-Embedded-Object---ElementCollection-from-embedded-Object-tp31157125p31231055.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.

_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users


Back to the top