Hibernate的配置文件打包找不到实体类
0
公司最近要求把写好的代码打成Jar包,弄好后今天试了一下,居然报错:
org.hibernate.MappingException: Unknown entity: xx.xx.xx.User
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1092)
at org.hibernate.internal.SessionImpl.locateEntityPersister(SessionImpl.java:2436)
at org.hibernate.internal.SessionImpl.access$2100(SessionImpl.java:172)
at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2378)
at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2369)
at org.hibernate.internal.SessionImpl.byId(SessionImpl.java:1047)
at org.hibernate.internal.SessionImpl.get(SessionImpl.java:979)
百思不得其解啊,后来和MyEclipse打出来的Jar一对比,才发现原来打包的时候配置文件不会被放入Jar包中。
那么我们打包是需要配置:
<resources>
<resource>
<directory>${basedir}/src/</directory>
<includes>
<include>**/*.hbm.xml</include>
</includes>
</resource>
</resources>
还有就是如果使用MyEclipse打包的时候需要勾选Add directory entries
这个选项,不是打出来的包也不能加载实体类,可能提示一下错误信息:
no persistent classes found for query class:xxxx
org.hibernate.QueryParameterException: could not locate named parameter [propertyValue]
at org.hibernate.engine.query.spi.ParameterMetadata.getNamedParameterDescriptor(ParameterMetadata.java:100)
at org.hibernate.engine.query.spi.ParameterMetadata.getNamedParameterExpectedType(ParameterMetadata.java:106)