当前位置: 首页 > news >正文

mysql57dialect_@Deprecated 过时的 MySQL5InnoDBDialect

什么是Hibernate方言?

Hibernate方言是用来告诉Hibernte如何对指定的数据库生成相应的SQL语句。

尽管做了很多尝试去使SQL语句标准化,但是不同的数据库支持的SQL语句还是有很多不同的地方。

所以Hibernate使用方言来辅助生成正确的SQL语句。

MySQL5Dialect与MySQL5InnoDBDialect有什么区别?

他们最大的区别是,在使用Hibernate创建表时MySQL5InnoDBDialect会在生成的建表SQL语句最后加上"ENGINE=InnoDB"。

InnoDB是一种MySQL数据库引擎.MySQL5.5及之后使用它做为默认引擎。它提供了ACID兼容的事务(Transaction)功能,并提供外键支持。

MySQLDialect与MySQL5Dialect有什么区别?

MySQLDialect是针对MySQL5之前的版本。主要变化还是在于建表SQL语句。

MySQL由于4到5还是有不小的变化。比如varchar在4及之前版本最大长度限制为255,5及之后版本最大长度限制为65535。

MySQLInnoDBDialect会在生成的建表SQL语句最后加上"TYPE=InnoDB"。

MySQL5InnoDBDialect过时了

升级到 Hibernate 5 的时候,就会发现 MySQL5InnoDBDialect,被标注@Deprecated也就是过时了。不仅仅是 MySQL5InnoDBDialect 过时了,所有带InnoDB的 Dialect 都被标注过时了@Deprecated;在标注有 InnoDBDialect 过时的同时 新加了 MySQL55Dialect 及 MySQL57Dialect。

如果查看源码就会发现 MySQL55Dialect 与 MySQL5InnoDBDialect 源码一模一样。

毕竟 MySQL 从 5.5 开始就默认使用 InnoDB 引擎,MySQL 8 已经移除了 MyISAM 引擎。Hibernate 的作者认为Dialect分为两类就没有什么必要了。

org.hibernate.dialect.MySQL55Dialect

org.hibernate.dialect.MySQL57Dialect

1

2

3

org.hibernate.dialect.MySQL55Dialect

org.hibernate.dialect.MySQL57Dialect

后记

Hibernate 作者最坑的地方是标注了@Deprecated之时,补了一个注释“Use "hibernate.dialect.storage_engine=innodb" environment variable or JVM system property instead.”,导致我以为是通过配置的方式来指定引擎。我在 Spring Boot 中各种拼配置都没成功,后来发现这个配置是要写在 classpath 下的 hibernate.properties 内。

相关文章:

  • java mysql的程序租用服务器吗_Java程序连接MySQL数据库
  • 华中之旅——湘西北常德
  • mysql 大量空连接_php与mysql系统中出现大量数据库sleep的空连接问题分析(转)...
  • Dev C++ 态度[zz]
  • python 环境去掉_JupyterLab的安装及使用Python虚拟环境
  • 多线程popen_python2.7使用subprocess32替代subprocess,避免多线程夯住
  • 构造哈希表的三个主要工作_挖掘机 斗杆再生阀内阀芯工作原理、主要阀体构造,工作原理、出现故障分析原因,挖机动臂无力,做工缓慢时的故障原因...
  • php mysql 日期格式化_[php基础]Mysql日期函数:日期时间格式转换函数详解
  • spring dbcp mysql_spring与Dbcp
  • mysql 存储引擎 对比_MySQL存储引擎(附带各种存储引擎的对比)
  • GCC精彩之旅 [zz]
  • mysql 57授权失败_完美解决mysql客户端授权后连接失败的问题
  • python显示括号错误_【求救】python中处理错误值时总是提示missing),但实际括号都是英文,也没有缺失括号,求救!!!...
  • QQ 1234days
  • new操作符的使用问题[ask in smth]
  • [nginx文档翻译系列] 控制nginx
  • canvas 绘制双线技巧
  • CODING 缺陷管理功能正式开始公测
  • css属性的继承、初识值、计算值、当前值、应用值
  • interface和setter,getter
  • JS笔记四:作用域、变量(函数)提升
  • Lsb图片隐写
  • ReactNative开发常用的三方模块
  • Redis学习笔记 - pipline(流水线、管道)
  • WebSocket使用
  • - 概述 - 《设计模式(极简c++版)》
  • 如何在 Tornado 中实现 Middleware
  • 提醒我喝水chrome插件开发指南
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 主流的CSS水平和垂直居中技术大全
  • raise 与 raise ... from 的区别
  • ![CDATA[ ]] 是什么东东
  • $(selector).each()和$.each()的区别
  • $L^p$ 调和函数恒为零
  • (06)Hive——正则表达式
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)计算机毕业设计高校学生选课系统
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)socket Aio demo
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET文档生成工具ADB使用图文教程
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • [52PJ] Java面向对象笔记(转自52 1510988116)
  • [acm算法学习] 后缀数组SA
  • [BZOJ 3680]吊打XXX(模拟退火)
  • [C#]C#学习笔记-CIL和动态程序集
  • [C/C++] C/C++中数字与字符串之间的转换