为什么hibernate严格要求定义hibernate.dial属性,而JPA规范没有';它是强制性的吗?

为什么hibernate严格要求定义hibernate.dial属性,而JPA规范没有';它是强制性的吗?,hibernate,jpa-2.1,Hibernate,Jpa 2.1,在使用hibernate学习java持久性时,我发现hibernate强制定义方言属性。我很困惑SQL是公共语言,它用于数据库通信,为什么我们要为不同的数据库使用不同的方言?为什么hibernate应该严格要求定义方言,而JPA规范并不关心它 通常Hibernate不需要设置Hibernate.dialogue属性 查看第7.12章中的文档说明: 7.12。数据库方言 虽然SQL是相对标准化的,但每个数据库供应商都使用 ANSI SQL定义语法的子集和超集。这被称为 数据库的方言。Hiberna

在使用hibernate学习java持久性时,我发现hibernate强制定义方言属性。我很困惑SQL是公共语言,它用于数据库通信,为什么我们要为不同的数据库使用不同的方言?为什么hibernate应该严格要求定义方言,而JPA规范并不关心它

通常Hibernate不需要设置
Hibernate.dialogue
属性

查看第7.12章中的文档说明:

7.12。数据库方言

虽然SQL是相对标准化的,但每个数据库供应商都使用 ANSI SQL定义语法的子集和超集。这被称为 数据库的方言。Hibernate处理这些应用程序之间的变化 通过org.hibernate.dialogue.dialogue类和 每个数据库供应商的不同子类

在大多数情况下,Hibernate将能够确定正确的方言 在使用过程中询问一些有关JDBC连接的问题 独自创立有关Hibernate确定 使用正确的方言(以及您影响分辨率的能力), 参见方言解析

如果由于某种原因,它无法确定正确的一个或您 要使用自定义方言,需要设置 休眠。方言设置


谢谢你,西蒙。这是非常有用的。