persistence@glassfish.java.net

RE: Problem using ManyToMany relationship

From: Romanowski, Tim <tim.romanowski_at_lmco.com>
Date: Wed, 28 Mar 2007 18:18:20 -0400

Now it blows up, albeit differently. I added the eager fetch:

@Basic(fetch=FetchType.EAGER)
    @ManyToMany
   @JoinTable(name = "team_users",
        joinColumns = {_at_JoinColumn(name = "teamid", referencedColumnName =
"teamid")},
        inverseJoinColumns = {_at_JoinColumn(name = "username",
referencedColumnName = "username")})
    private java.util.Collection <com.lmco.gems.persistence.entity.Users>
userCollection;


And got this on deployment (note, both Users and Team entities implement
Serializable):


Exception Description: predeploy for PersistenceUnit [ZadigPU] failed.
Internal Exception: Exception [TOPLINK-7155] (Oracle TopLink Essentials -
2.0 (Build b40-rc (03/20/2007))):
oracle.toplink.essentials.exceptions.ValidationException
Exception Description: The type [interface java.util.Collection] for the
attribute [userCollection] on the entity class [class
com.my.persistence.entity.Team] is not a valid type for a serialized
mapping. The attribute type must implement the Serializable interface.
        at
com.sun.enterprise.web.WebModuleListener.loadPersistenceUnits(WebModuleListe
ner.java:180)
        at
com.sun.enterprise.web.WebModuleListener.lifecycleEvent(WebModuleListener.ja
va:155)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:130)
        at
org.apache.catalina.core.StandardContext.start(StandardContext.java:5052)
        at com.sun.enterprise.web.WebModule.start(WebModule.java:308)
        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:9
60)
        at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:944)
        at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:671)
        at
com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1575)
        at
com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1216)
        at
com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebMod
uleDeployEventListener.java:169)
        at
com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebMod
uleDeployEventListener.java:265)
        at
com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEvent
Listener(AdminEventMulticaster.java:951)
        at
com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent
(AdminEventMulticaster.java:938)
        at
com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEvent
Multicaster.java:448)
        at
com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEve
ntMulticaster.java:160)
        at
com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastE
vent(DeploymentNotificationHelper.java:295)
        at
com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(
DeploymentServiceUtils.java:210)
        at
com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(
ServerDeploymentTarget.java:285)
        at
com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(Applica
tionStartPhase.java:119)
        at
com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(Deploymen
tPhase.java:95)
        at
com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDe
ploymentService.java:892)
        at
com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeployment
Service.java:564)
        at
com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeployment
Service.java:608)
        at
com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsCo
nfigMBean.java:731)
        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.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:
353)
        at
com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:
336)
        at
com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:
448)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanSer
verInterceptor.java:836)
        at
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
        at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:77)
        at $Proxy1.invoke(Unknown Source)
        at
com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInte
rceptor.java:297)
        at
com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeC
aller.java:56)
        at
com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(
MBeanServerRequestHandler.java:142)
        at
com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet
.processRequest(RemoteJmxConnectorServlet.java:109)
        at
com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet
.doPost(RemoteJmxConnectorServlet.java:180)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:818)
        at
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFi
lterChain.java:398)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:277)
        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContext
Valve.java:255)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:188)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611
)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564
)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:81)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:193
)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611
)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564
)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:137)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611
)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564
)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
        at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:255)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(
DefaultProcessorTask.java:618)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(Defa
ultProcessorTask.java:549)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(Defaul
tProcessorTask.java:790)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTas
k(DefaultReadTask.java:326)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadT
ask.java:248)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadT
ask.java:199)
        at
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
        at
com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadIm
pl.java:103)
Caused by: javax.persistence.PersistenceException: Exception [TOPLINK-28018]
(Oracle TopLink Essentials - 2.0 (Build b40-rc (03/20/2007))):
oracle.toplink.essentials.exceptions.EntityManagerSetupException
Exception Description: predeploy for PersistenceUnit [ZadigPU] failed.
Internal Exception: Exception [TOPLINK-7155] (Oracle TopLink Essentials -
2.0 (Build b40-rc (03/20/2007))):
oracle.toplink.essentials.exceptions.ValidationException
Exception Description: The type [interface java.util.Collection] for the
attribute [userCollection] on the entity class [class
com.my.persistence.entity.Team] is not a valid type for a serialized
mapping. The attribute type must implement the Serializable interface.
        at
oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.predeploy
(EntityManagerSetupImpl.java:615)
        at
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createContai
nerEntityManagerFactory(EntityManagerFactoryProvider.java:178)
        at
com.sun.enterprise.server.PersistenceUnitLoaderImpl.load(PersistenceUnitLoad
erImpl.java:136)
        at
com.sun.enterprise.server.PersistenceUnitLoaderImpl.load(PersistenceUnitLoad
erImpl.java:71)
        at
com.sun.enterprise.web.WebModuleListener.loadPersistenceUnits(WebModuleListe
ner.java:177)
        ... 71 more


-----Original Message-----
From: Marina.Vatkina_at_Sun.COM [mailto:Marina.Vatkina_at_Sun.COM]
Sent: Wednesday, March 28, 2007 5:46 PM
To: persistence_at_glassfish.dev.java.net
Subject: Re: Problem using ManyToMany relationship

Can you try if setting FetchType=EAGER on the userCollection makes a
difference?

thanks,
-marina