java - 当我们已经在hibernate的配置文件中定义了驱动程序时,为什么我们需要定义dilect

标签 java hibernate hibernate.cfg.xml

many我发现我们必须在hibernate.cfg.xml中定义方言来告诉hibernate我们将在hibernate中使用什么语言。在此基础上hibernate生成相应的sql。

<property name="hibernate.conection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.dilect">org.hibernate.dialect.MySQLDilect</property>

更重要的是,任何数据库提供商都可能有多个驱动程序,并且对于任何驱动程序,根据其版本可能有多种方言。

我的观点是,即使我们已经在那里提到了驱动程序(唯一)并且一次我们是单一版本的 jar,那么为什么这不仅足以生成 sql。

最佳答案

方言是一个可选的配置选项。通常hibernate可以根据数据库连接自动检测方言。

但在某些情况下您可能需要不同的方言 - 不同版本的数据库可能需要不同的方言。 - 自定义/错误修复方言并指定它。

关于java - 当我们已经在hibernate的配置文件中定义了驱动程序时,为什么我们需要定义dilect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38112045/

相关文章:

java - 有界无锁阻塞队列吗?

从 request.getInputStream() 读取字符时出现 java.io.IOException : Stream closed or Underlying input stream returned zero bytes,

java - Wildfly 计时器服务 - 无法创建计时器持久性表

hibernate - 为什么 Hibernate 找不到/hibernate.cfg.xml?

java - 构造函数调用不同类的 AspectJ 切入点 - 识别创建的对象类型

java - 为什么 1971 年 11 月 1 日之前的日期要在 java.util.Date 上添加一个小时?

java - EntityManager 使用 id 以外的特定列合并

java - Tapestry JPA Jackson 反序列化

java - 我是否正确配置了 Hibernate hibernate.cfg.xml 文件?

java - hibernate.cfg.xml 没有找到 hibernate.properties 文件