persistence@glassfish.java.net

Problem with _at_AssociationOverride on Embedded ManyToOne Relation

From: Christian Kerwer <Christian.Kerwer_at_t-online.de>
Date: Wed, 6 Feb 2008 15:00:42 +0100

Hi everyone,

 

I'm trying to use an @AssociationOverride on a manyToOne relation of an
Emedded Type to rename the Column in the actual Entity:

 

@Entity

Public class ProcessActivityResult

{

   .

   @Embedded

   @AssociationOverride(name="selectionListItem",
joinColumns=_at_JoinColumn(name="ACTUAL_SELECTIONLISTITEMID"))

   private DynamicAttributeVal valueActual;

}

 

@Embeddable

public class DynamicAttributeVal

{

   .

   @ManyToOne

   @JoinColumn( name="SELECTIONLISTITEMID" )

   private SelectionListItem selectionListItem;

}

 

This leads to the following exception:

javax.persistence.PersistenceException: Exception [TOPLINK-28018] (Oracle
TopLink Essentials - 2.0.1 (Build b03-fcs (10/03/2007))):
oracle.toplink.essentials.exceptions.EntityManagerSetupException

Exception Description: predeploy for PersistenceUnit [toplink] failed.

Internal Exception: java.lang.NullPointerException

       at
oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.predeploy
(EntityManagerSetupImpl.java:643)

       at
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createContai
nerEntityManagerFactory(EntityManagerFactoryProvider.java:244)

       at
com.sun.enterprise.server.PersistenceUnitLoaderImpl.load(PersistenceUnitLoad
erImpl.java:149)

       at
com.sun.enterprise.server.PersistenceUnitLoaderImpl.load(PersistenceUnitLoad
erImpl.java:84)

       at
com.sun.enterprise.server.AbstractLoader.loadPersistenceUnits(AbstractLoader
.java:898)

       at
com.sun.enterprise.server.ApplicationLoader.doLoad(ApplicationLoader.java:18
4)

       at
com.sun.enterprise.server.TomcatApplicationLoader.doLoad(TomcatApplicationLo
ader.java:126)

       at
com.sun.enterprise.server.AbstractLoader.load(AbstractLoader.java:244)

       at
com.sun.enterprise.server.ApplicationManager.applicationDeployed(Application
Manager.java:336)

       at
com.sun.enterprise.server.ApplicationManager.applicationDeployed(Application
Manager.java:230)

       at
com.sun.enterprise.server.ApplicationManager.applicationDeployed(Application
Manager.java:203)

       at
com.sun.enterprise.server.ApplicationManager.applicationEnabled(ApplicationM
anager.java:763)

       at
com.sun.enterprise.admin.event.AdminEventMulticaster.invokeApplicationDeploy
EventListener(AdminEventMulticaster.java:934)

       at
com.sun.enterprise.admin.event.AdminEventMulticaster.handleApplicationDeploy
Event(AdminEventMulticaster.java:912)

       at
com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEvent
Multicaster.java:461)

       at
com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEve
ntMulticaster.java:176)

       at
com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.sendEnableConfigChan
geEventExplicitly(ApplicationsConfigMBean.java:1834)

       at
com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.enable(ApplicationsC
onfigMBean.java:1902)

 

 

The second try using the AssociationOverride on the Entity like this:

 

@Entity

@AssociationOverride(name=" valueActual.selectionListItem",
joinColumns=_at_JoinColumn(name="ACTUAL_SELECTIONLISTITEMID"))

Public class ProcessActivityResult

{

   .

   @Embedded

   private DynamicAttributeVal valueActual;

}

 

Doesn't effect the renaming. In this case toplink looks up for a column
named ,SELECTIONLISTITEMID' instead of ,ACTUAL_SELECTIONLISTITEMID'.

 

Can anybody help, this is very urgent!

 

 

Christian Kerwer