目录

实体类注解出错-Could-not-determine-type-for-java.util.Set,-at-table-adm_role

目录

实体类注解出错: Could not determine type for: java.util.Set, at table: adm_role

配置了User与Role的多对多关系,启动测试,提示如下错误:

Could not determine type for: java.util.Set, at table: adm_role, for columns: [org.hibernate.mapping.Column(users)]

//省略若干错误信息
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612) ~[spring-beans-4.0.5.RELEASE.jar:4.0.5.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549) ~[spring-beans-4.0.5.RELEASE.jar:4.0.5.RELEASE]
	... 40 common frames omitted
Caused by: org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: adm_role, for columns: [org.hibernate.mapping.Column(users)]
	at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:336) ~[hibernate-core-4.3.5.Final.jar:4.3.5.Final]
	at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:310) ~[hibernate-core-4.3.5.Final.jar:4.3.5.Final]
	at org.hibernate.mapping.Property.isValid(Property.java:241) ~[hibernate-core-4.3.5.Final.jar:4.3.5.Final]
	at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:496) ~[hibernate-core-4.3.5.Final.jar:4.3.5.Final]
	at org.hibernate.mapping.RootClass.validate(RootClass.java:270) ~[hibernate-core-4.3.5.Final.jar:4.3.5.Final]
	at org.hibernate.cfg.Configuration.validate(Configuration.java:1358) ~[hibernate-core-4.3.5.Final.jar:4.3.5.Final]
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1849) ~[hibernate-core-4.3.5.Final.jar:4.3.5.Final]
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850) ~[hibernate-entitymanager-4.3.5.Final.jar:4.3.5.Final]
	... 48 common frames omitted

主要原因是因为出现,有的JPA注解用在  getter 方法上,有的注解使用在 实体类的属性上。必须统一,要么在方法上,要么在属性上。出错的主要原因是个人喜欢把  @注解 都放在属性上,因为查看代码的时候基本属性都定义在最前面,比较一目了然,否则定义在getter方法上还有去找,费神。  但是我所有的 实体类都继承自抽象类: IdEntity,,IdEntity把JPA注解在 getter方法,所以出现了以上错误。