Hibernate version: Version that ships with JBoss 4.0.4GA
Mapping documents: None, using Injection
Full stack trace of any exception that occurs:
Code:
17:01:06,300 INFO [Ejb3Configuration] Processing PersistenceUnitInfo [
name: test
...]
17:01:06,302 INFO [Ejb3Configuration] found EJB3 Entity bean: test.Course
17:01:06,307 INFO [Ejb3Configuration] found EJB3 Entity bean: test.Student
17:01:06,307 WARN [Ejb3Configuration] Persistence provider caller does not implements the EJB3 spec correctly. PersistenceUnitInfo.getNewTempClassLoader() is null.
17:01:06,309 INFO [Configuration] Reading mappings from resource: META-INF/orm.xml
17:01:06,309 INFO [Ejb3Configuration] [PersistenceUnit: test] no META-INF/orm.xml found
17:01:06,311 INFO [AnnotationBinder] Binding entity from annotated class: test.Course
17:01:06,312 INFO [EntityBinder] Bind entity test.Course on table course
17:01:06,312 WARN [AnnotationBinder] Hibernate does not support SequenceGenerator.initialValue()
17:01:06,322 INFO [AnnotationBinder] Binding entity from annotated class: test.Student
17:01:06,322 INFO [EntityBinder] Bind entity test.Student on table student
17:01:06,323 WARN [AnnotationBinder] Hibernate does not support SequenceGenerator.initialValue()
17:01:06,368 WARN [ServiceController] Problem starting service persistence.units:ear=TestRelationships.ear,jar=TestRelationshipsEJB.jar,unitName=test
org.hibernate.MappingException: Could not determine type for: java.util.Collection, for columns: [org.hibernate.mapping.Column(mCoursesEnrolledOn)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:266)
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:253)
at org.hibernate.mapping.Property.isValid(Property.java:185)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:395)
at org.hibernate.mapping.RootClass.validate(RootClass.java:192)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1021)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1206)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:631)
at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:760)
at org.hibernate.ejb.Ejb3Configuration.createContainerEntityManagerFactory(Ejb3Configuration.java:350)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:119)
at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:264)
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:585)
at org.jboss.ejb3.ServiceDelegateWrapper.startService(ServiceDelegateWrapper.java:99)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy120.start(Unknown Source)
at org.jboss.ejb3.JmxKernelAbstraction.install(JmxKernelAbstraction.java:82)
at org.jboss.ejb3.Ejb3Deployment.startPersistenceUnits(Ejb3Deployment.java:626)
at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:475)
at org.jboss.ejb3.Ejb3Module.startService(Ejb3Module.java:139)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy41.start(Unknown Source)
at org.jboss.ejb3.EJB3Deployer.start(EJB3Deployer.java:449)
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:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
at org.jboss.ws.server.WebServiceDeployer.start(WebServiceDeployer.java:117)
at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy42.start(Unknown Source)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1007)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:997)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:808)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:771)
at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy6.deploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:610)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
17:01:06,402 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=TestRelationships.ear,jar=TestRelationshipsEJB.jar,name=RelationTestBean,service=EJB3 with dependencies:
17:01:06,402 INFO [JmxKernelAbstraction] persistence.units:ear=TestRelationships.ear,jar=TestRelationshipsEJB.jar,unitName=test
17:01:06,405 INFO [EJB3Deployer] Deployed: file:/usr/local/jboss-4.0.4.GA/server/default/tmp/deploy/tmp56627TestRelationships.ear-contents/TestRelationshipsEJB.jar
17:01:06,407 INFO [EARDeployer] Started J2EE application: file:/usr/local/jboss-4.0.4.GA/server/default/deploy/TestRelationships.ear
17:01:06,410 ERROR [URLDeploymentScanner] Incomplete Deployment listing:
--- MBeans waiting for other MBeans ---
ObjectName: persistence.units:ear=TestRelationships.ear,jar=TestRelationshipsEJB.jar,unitName=test
State: FAILED
Reason: org.hibernate.MappingException: Could not determine type for: java.util.Collection, for columns: [org.hibernate.mapping.Column(mCoursesEnrolledOn)]
I Depend On:
jboss.jca:service=ManagedConnectionFactory,name=Postgres_Test
Depends On Me:
jboss.j2ee:ear=TestRelationships.ear,jar=TestRelationshipsEJB.jar,name=RelationTestBean,service=EJB3
ObjectName: jboss.j2ee:ear=TestRelationships.ear,jar=TestRelationshipsEJB.jar,name=RelationTestBean,service=EJB3
State: NOTYETINSTALLED
I Depend On:
persistence.units:ear=TestRelationships.ear,jar=TestRelationshipsEJB.jar,unitName=test
--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: persistence.units:ear=TestRelationships.ear,jar=TestRelationshipsEJB.jar,unitName=test
State: FAILED
Reason: org.hibernate.MappingException: Could not determine type for: java.util.Collection, for columns: [org.hibernate.mapping.Column(mCoursesEnrolledOn)]
I Depend On:
jboss.jca:service=ManagedConnectionFactory,name=Postgres_Test
Depends On Me:
jboss.j2ee:ear=TestRelationships.ear,jar=TestRelationshipsEJB.jar,name=RelationTestBean,service=EJB3
Name and version of the database you are using: PostgreSQL 8.1.4 with jdbc driver build 407Hi i have tried to implement a very simple example using a ManyToMany mapping, the example is Student and Course.
In
Course.java:
Code:
/**
* The list of student's enrolled on the course.
*/
private Set < Student > mEnrolledStudents = new HashSet < Student >();
.......
/**
* Return the students enrolled on the course.
* @return mEnrolledStudents student's
*/
@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.EAGER)
@JoinTable(name = "course_student",
joinColumns = {@JoinColumn(name = "course_id") },
inverseJoinColumns = {@JoinColumn(name = "student_id") })
public Set < Student > getStudents() {
return mEnrolledStudents;
}
/**
* Set the students enrolled on this course.
* @param pEnrolledStudents students
*/
public void setStudents(final Set < Student > pEnrolledStudents) {
this.mEnrolledStudents = pEnrolledStudents;
}
And in
Student.javaCode:
/**
* The list of the course the student is enrolled on.
*/
private Collection < Course > mCoursesEnrolledOn = new ArrayList < Course >();
......
/**
* Return the courses the student is enrolled on.
* @return mCoursesEnrolledOn courses
*/
@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE }, mappedBy = "mEnrolledStudents")
public Collection < Course > getCourses() {
return mCoursesEnrolledOn;
}
/**
* Set the courses the student is enrolled on.
* @param pCoursesEnrolledOn courses
*/
public void setCourses(final Collection < Course > pCoursesEnrolledOn) {
this.mCoursesEnrolledOn = pCoursesEnrolledOn;
}
I cannot understand what is wrong with my code as it is the same as all the EJB 3 examples i have seen, and read (O'Reilly Enterprise Java Beans 3.0). Do i have to decalre the the JoinTable in both Entities as I found an older example that said that (Jan 2005), but i think you don't need to now.
Can anyone offer me any advice ?
Thanks in advance,
Andy