Did you look at attributes of the @ManyToMany annotation?
thanks,
-marina
Romanowski, Tim wrote:
> What else would I use? Isn't that how you define the fetch type?
>
> -----Original Message-----
> From: Marina.Vatkina_at_Sun.COM [mailto:Marina.Vatkina_at_Sun.COM]
> Sent: Wednesday, March 28, 2007 6:23 PM
> To: persistence_at_glassfish.dev.java.net
> Subject: Re: Problem using ManyToMany relationship
>
> Tim,
>
> Why did you use @Basic to do it?
>
> thanks,
> -marina
>
> Romanowski, Tim wrote:
>
>>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