我目前正在升级我的现有项目 更改如下:

JDK 8 --> JDK 17
JSF 2.2 --> Jakarta Faces 4
Glassfish 4.1 --> 7.0.11
JPA 2.1 --> JPA 3.1

我也需要修改一下hibernate的版本. 目前,我使用的是Hibernate 4.3.5.Final

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.3.5.Final</version>
            <scope>compile</scope>
        </dependency>

我试过Hibernate 6.1.7.最后,它显示最低方言是5.7. 我可能是错的,并且没有具体的声明来说明关于Hibernate版本方面所需的最低MySQL版本的更改.

我的问题是, 支持MySQL5.6的最新Hibernate版本是什么? 如有任何帮助,我们将非常感激.

推荐答案

查看org.hibernate.dialect.MySQLDialect的来源,可以找到这一行

private static final DatabaseVersion MINIMUM_VERSION = DatabaseVersion.make( 5, 7 );

这个代码文件的链接在这里: https://github.com/hibernate/hibernate-orm/blob/6.1/hibernate-core/src/main/java/org/hibernate/dialect/MySQLDialect.java

然后,您可以在GitHub UI中 Select 分支,并快速判断每个源分支支持的版本.

定义MINIMUM_VERSION的第一个分支是Hibernate6.1,在该分支中,它将最低版本定义为5.7.

Hibernate 6.0没有这个static属性.类注释说它适用于"MySQL 5及以上".

Hibernate5.6有一个类注释,它是针对"MySQL(5.x之前)"的.

根据https://hibernate.org/orm/documentation/getting-started/的说法,Hibernate6.0目前已经停产,5.6目前只能得到有限的支持.

Java相关问答推荐

是否可以从@ TrustMapping中删除特定方法的基路径?

当切换javaFX场景时,stage的大小正在Minimize

Quarkus keycloat配置不工作.quarkus. keycloak. policy—enforcer. enable = true在. yaml表示中不工作

@org.springframework.beans.factory.annotation.Autowired(required=true)-注入点有以下注释:-SpringBoot

现场观看Android Studio中的变化

FALSE:它应该在什么时候使用?

为什么不应用类型推断?

内存中的H2修剪尾随空格

当Volatile关键字真的是必要的时候?

Spring和可编辑";where";@Query

JOOQ中的子查询使用的是默认方言,而不是配置的方言

如何在不删除Java中已有内容的情况下覆盖文件内容?

由于在生成器模式中使用泛型,lambda表达式中的返回类型错误

使用Class.this.field=Value初始化构造函数中的最后一个字段会产生错误,而使用this.field=Value则不会

如何在列表(链表)中插入一个新 node (作为prelast)

错误:未找到扩展元素在JBossEAP 7.2中安装FUSE时出错

Java返回生成器的实现

如何在单元测试中获得我的装饰Mapstruct映射器的实例?

获取401未经授权,即使在标头中设置了浏览器名称和cookie

具有 DayOfWeek 列表的 JPA 实体