问题标签 [hibernate-5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
131 浏览

java - 升级到 Hibernate 5 后,Hibernate 拦截器无法正常工作

早些时候,我的拦截器代码在 Hibernate 3 上运行良好。在我升级到 Hibernate 5 并进行必要的更改后,onSave 和 onFlushDirty 等回调方法停止工作。

关于库更改,在 Hibernate 3 jars 下面我用 Hibernate 5 jars 替换。

Hibernate 3个罐子被替换-

  • dom4j.jar
  • hibernate-core-4.3.5.Final.jar
  • hibernate-jpa-2.1-api-1.0.0.Final.jar
  • jboss-logging.jar

Hibernate 5 罐添加-

  • byte-buddy-1.9.5.jar
  • classmate-1.3.4.jar
  • dom4j-2.1.1.jar
  • hibernate-commons-annotations-5.1.0.Final.jar
  • hibernate-core-5.4.1.Final.jar
  • javax.persistence-api-2.2.jar
  • javax.transaction.jar
  • jboss-logging-3.3.2.Final.jar

下面是我的拦截器代码-

如果有人可以指出我遗漏的内容或我需要进行的任何更正,那将非常有帮助。

请注意-整个应用程序运行顺利,只是没有调用拦截器回调方法。

0 投票
1 回答
23 浏览

hibernate - JPA/Hibernate 在 Wildlfy 24.0.1.Final/Hibernate 5.3.20 中未正确找到非 XA 数据源的数据库模式

问题描述

我正在将一个项目从 Wildfly 8.2.1.Final 迁移到更新的版本。主要目标是将 Hibernate 5 与 Java 8+ 一起使用,并在与 java 11 兼容的 Wildfly 版本上运行,以便以后迁移(因此问题出现在 java 8 上)。

我们选择了 Wildfly 24.0.1.Final (Hibernate 5.3.20.Final),因为它是 jboss-migration-tool 帮助迁移standalone.xml 的最后一个版本(WF 25 删除了对遗留内容的支持,所以这将是手动迁移步骤)。

我们正在使用 Mariadb 10,最新版本的 Mysql 连接器 8。与 MySQL 连接器版本 5 或 mariadb jdbc 驱动程序相同的问题。

迁移非 XA 数据源(XA 数据源正常工作)时会出现此问题。在 EAR 部署后,Wildfly 在映射每个实体(请参阅日志)时一直警告我“未选择数据库”,然后在查询数据库时返回错误。

  • 正如其他人所建议的那样,我检查了 connection-url 是否以正确的模式名称结尾。
  • 测试与数据库的连接是可以的。
  • 将数据源指定为 XA 时,它可以正常工作(请参阅standalone.xml 的摘录)
  • 在 wildfly 8 上,XA 和非 XA 数据源都正常运行。
  • 我尝试使用休眠属性 hibernate.default_schema 再次指定默认模式(voting_db);我现在得到了 XA 和非 XA 数据源的错误,所以这似乎不是一个好主意(但是错误是不同的)。
  • 我尝试降级到 2.0 版本的 persistence.XML

Wildfly 启动后,我收到以下警告:

因此,我在通过 Wildfly 管理界面添加的数据源上检查了standalone.xml 语法,没有发现任何错误。下一条日志消息是通知数据源已正确绑定。不过,提示有问题吗?

我错过了什么?我已经尝试了几天,在网上搜索..

Standalone.xml 中的非 XA 数据源规范(简化)

这是产生错误的规范

Standalone.xml 中的 XA 数据源规范(简化)

这是正常工作的规范。

简化的persistence.xml

日志

以下是日志的摘录。这向我提出了几个问题:

  • 默认情况下是否启用二级缓存?还是因为某些实体被标记为 @cacheable 而被激活?
  • hibernate.properties 文件有多重要?

EAR 部署时

对每个实体重复相同的警告。

最后出现错误