适用于JPA 2.2和Hibernate 5的正确的MySQL persistence.xml示例文件
随着MySQL安装的继续迁移并发展到较新的版本,在线JPA和Hibernate 5教程还没有保持足够的活力。 结果,许多学习JPA 2.2并在MySQL上从Hibernate 5开始的开发人员在他们的SessionFactory或EntityManager获得启动机会之前就遇到了障碍。怎么了 MySQL的persistence.xml属性已过期,这些属性包括方言和JDBC驱动程序 。...
随着MySQL安装的继续迁移并发展到较新的版本,在线JPA和Hibernate 5教程还没有保持足够的活力。 结果,许多学习JPA 2.2并在MySQL上从Hibernate 5开始的开发人员在他们的SessionFactory或EntityManager获得启动机会之前就遇到了障碍。
怎么了 MySQL的persistence.xml属性已过期,这些属性包括方言和JDBC驱动程序 。
从下面的Hibernate 5 MySQL persistence.xml示例中可以看到,进行必要的更改并不困难。
使用正确的MySQL方言
对于使用MySQL Community Server版本8的用户 ,他们还必须使用MySQL8Dialect。 现代版本的MySQL在后台使用InnoDB,并且如果开发人员使用较旧的MySQLDialect,它将触发MyISAM异常。
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL8Dialect" />
如果您不使用版本8,以下是一些MySQL方言,如果您已迁移到MySQL版本4以上,则这些方言可能比默认方言更合适:
- MySQL55方言
- MySQL57方言
- MySQL5方言
- MySQL8方言
正确的MySQL persistence.xml驱动程序
我经常看到的另一个问题是开发人员参考示例MySQL JPA persistence.xml文件,该文件使用了较早的com.mysql.jdbc.Driver。 如果开发人员使用此驱动程序对MySQL 8数据库执行查询,它将在您的Hibernate日志中产生令人不安的警告。 com.mysql.cj.jdbc.Driver是正确使用的驱动程序。
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
考虑到这些调整后, 现代 MySQL persistence.xml JPA示例文件如下所示:
您可以在我的GitHub帐户上找到用于Hibernate 5和JPA 2.2的此示例MySQL persistence.xml文件的副本。
更多推荐
所有评论(0)