java - Jboss/野蝇: programmatically add classes to Hibernate

标签 java hibernate jboss

我们希望摆脱在 persistence.xml 和 <property name="hibernate.archive.autodetection" value="class"/> 中指定所有 jar 文件或单个类的麻烦。似乎不起作用,至少 Hibernate 不会拾取任何不在上述任何 jar 文件或包含 persistence.xml 的存档中的类。

所以我们的想法是我们自己扫描实体并向 Hibernate 提供所有检测到的类。

基本方法是:

  • 使用 CDI 扩展来获取所有用 @Entity 注释的类(这有效)
  • 使用 Hibernate 集成器来注册类

但是,看起来有两个问题:

  1. 积分器在 CDI 扩展之前运行,因此顺序不合适。
  2. 日志表明 Hibernate 甚至在运行集成器之前就构建了持久性单元,因此在集成器中添加类似乎为时已晚,即使我们可以解决或解决问题 1(例如,通过我们自己扫描类路径)。

基本上问题是:我们如何以编程方式将持久类添加到 JBoss 7 或 Wildfly 环境中的 Hibernate 配置中?

最佳答案

正如您已经说过的,hibernate 可能会在 CDI 之前初始化。有一个小解决方法可以消除指定每个 bean 的需要,而只需要指定 JAR。 Persistence.xml 有一个 <jar-file>jarName</jar-file>标签使您能够指定应该扫描持久性实体的 jar。

Pascal Thivent 的详细回答 Do I need <class> elements in persistence.xml?

有时,这对我不起作用,直到我声明像 <jar-file>lib/someJar.jar</jar-file> 这样的 JARS 路径。

关于java - Jboss/野蝇: programmatically add classes to Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35891814/

相关文章:

java - 我可以从 xml 获取选定的标签并下载该值吗?

java - 当所有线程都死了时停止应用程序

spring - Wildfly 在启动时抛出 UnsupportedOperationException(命名上下文是只读的)

java - Wildfly jms配置

java - NetBeans 内存不足错误

java - 如何在olingo中读取具有复杂属性的实体集合?

java - 如何从匿名 PL/pgSQL block 返回结果?

spring - 如何在 JBoss 6 中分离耳朵类加载器和系统类加载器?

java - 为什么延迟获取不工作 JPA

java - 如何使用复合主键为下面的表结构编写 hibernate 映射