[size=medium][b][color=red]org.hibernate.DuplicateMappingException: duplicate import: [/color][/b][/size]
[color=red][b]spring启动报错,有两个相同命名的entity[/b][/color]
例如异常信息如下:
[color=red][b]spring启动报错,有两个相同命名的entity[/b][/color]
例如异常信息如下:
duplicate import: User refers to both org.jbpm.identity.User and com.xiaobai.oa.model.User (try using auto-import="false")
大概意思是:重复引入User类 分别引用的是 org.jbpm.identity.User 和 com.xiaobai.oa.model.User。
我的项目是基于Jbpm(一个工作流引擎)的工作流开发。这个异常是Hibernate在映射的时候抛出的,解决这个异常的方法有两种:
第一种:直接的方法,就是吧自己的类名字改一个名字。
第二种:将发生异常的类(自己的程序的类)就上面的异常上下文的话应该是com.xiaobai.oa.model.User的Hibernate的映射文件的<hibernate-mapping> 标签的auto-import属性值设置成false, <hibernate-mapping auto-import="false">,这样改了以后还要改的地方是你的HQL语句中用到com.xiaobai.oa.model.User类的地方都要写全名,如:"select user from com.xiaobai.oa.model.User user"。
第二种解决方法的原理是:
在使用Hibernate的HQL查询语句的时候,如"select user from User user"
from后面的类名默认是自动引入的也就是<hibernate-mapping auto-import="true"> 的效果,所以改为false后就要写类的全名。