| 
					
						 Hibernate version:3.2.2.ga and hibernate-annotations 3.3.0.ga 
 
 Hello everybody,
 
 I'm trying to define a many-to-many relation using the CaveatEmptor project as a guide but I get a mapping exception. Here is my code:
 
 @Entity
 @Table(name="ROLES")
 pubic class Role implements Serializable {
 ...
 	@ManyToMany
 	@JoinTable(
 	    name = "ROLE_USER",
 	    joinColumns = {@JoinColumn(name = "ROLE_ID")},
 	    inverseJoinColumns = {@JoinColumn(name = "USER_ID")}
 	)
 	public Set<User> users = new HashSet<User>();
 	public Set<User> getUsers() { 
 		return users;
 	}
 	public void setUsers(Set<User> users) {
 		this.users = users;
 	}
 ...
 }
 
 @Entity
 @Table(name="ROLES")
 public class User implements Serializable {
 ...
        @ManyToMany(mappedBy = "users")
        public Set<Role> roles = new HashSet<Role>();
        public Set<Role> getRoles() {
 		return roles;
 	}
 
 	public void setRoles(Set<Role> roles){
 		this.roles = roles;
 	}
 ...
 }
 
 and I get:
 Caused by: 
 org.hibernate.MappingException: Could not determine type for: java.util.Set, for columns: [org.hibernate.mapping.Column(roles)]
 	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:440)
 	at org.hibernate.mapping.RootClass.validate(RootClass.java:192)
 	at org.hibernate.cfg.Configuration.validate(Configuration.java:1102)
 	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1287)
 	at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:915)
 	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:798)
 	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:738)
 	at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:131)
 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1057)
 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1024)
 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
 	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
 	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:140)
 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:270)
 	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)
 	at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:156)
 	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
 	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
 	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
 	at org.mortbay.jetty.servlet.WebApplicationContext.doStart(WebApplicationContext.java:495)
 	at org.mortbay.util.Container.start(Container.java:72)
 	at org.mortbay.http.HttpServer.doStart(HttpServer.java:708)
 	at org.mortbay.util.Container.start(Container.java:72)
 	at com.iw.plugins.jettyrunner.PluginRunner.launchWithXML(PluginRunner.java:229)
 	at com.iw.plugins.jettyrunner.PluginRunner.launch(PluginRunner.java:91)
 	at com.iw.plugins.jettyrunner.PluginRunner.main(PluginRunner.java:75)
 
 But when I move the annotations to the accessor methods everything works fine. Is there something wrong in my code or is this the expected behaviour?
 I'm using hiberante 3.2.2.ga and hibernate-annotations 3.3.0.ga.
 
 Any comment will be appreciated,
 
 Thanks
 Dragos 
					
  
						
					 |