问题标签 [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.
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
下面是我的拦截器代码-
如果有人可以指出我遗漏的内容或我需要进行的任何更正,那将非常有帮助。
请注意-整个应用程序运行顺利,只是没有调用拦截器回调方法。
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 部署时
对每个实体重复相同的警告。
最后出现错误