Hibernate 没有类加载的PersistenceUnit初始化?
当我尝试启动以下持久性单元时Hibernate 没有类加载的PersistenceUnit初始化?,hibernate,jpa,jboss7.x,Hibernate,Jpa,Jboss7.x,当我尝试启动以下持久性单元时 <persistence-unit name="Cibet" transaction-type="JTA"> <jta-data-source>java:/CibetDS</jta-data-source> <jar-file>lib/cibet-1.5.jar</jar-file> </persistence-unit> 缺少的类用于一个类,如下所示: import org.ap
<persistence-unit name="Cibet" transaction-type="JTA">
<jta-data-source>java:/CibetDS</jta-data-source>
<jar-file>lib/cibet-1.5.jar</jar-file>
</persistence-unit>
缺少的类用于一个类,如下所示:
import org.apache.shiro.mgt.DefaultSecurityManager;
import org.apache.shiro.realm.Realm;
import org.apache.shiro.subject.Subject;
public class CibetSecurityManager extends DefaultSecurityManager {
...
但是,CibetSecurityManager是可选的,仅当Shiro LIB确实位于类路径上时,应用程序才使用它。如果Shiro不在类路径中,则类加载器不应尝试加载它。
现在,JBoss或Hibernate似乎不确定PersistenceUnit初始化过程是否尝试加载它在jar中找到的所有类
问:我能告诉JBoss/Hibernate在不加载jar中所有类的情况下查找@Entity注释类吗?在Tomee/OpenJpa中,这是毫无问题的
感谢您的帮助如果其他所有操作都失败,您可以通过添加以下内容在persistence.xml中显式列出所有实体类:
<class>my.example.package.ExampleEntity</class>
...
<exclude-unlisted-classes>true</exclude-unlisted-classes>
这应该避免实体扫描。我将查看源代码,看看您是否可以改变这一点,并列出不需要扫描的类 谢谢,这就是我用来解决问题的方法。但是由于cibet.jar是一个框架库,我不想向用户公开太多的内部内容,并使其尽可能易于处理。
<class>my.example.package.ExampleEntity</class>
...
<exclude-unlisted-classes>true</exclude-unlisted-classes>