Hibernate JPA的应用中的persistence.xml文件中配置的数据的 hibernate.dialect 这个属性是用来指定使用哪种数据的sql方式将HQL转换成sql语句;
如:
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />--mysql
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />--oracle10
等等,指定不同的数据库在转换HQL语句的时候会用指定数据库的关键字解析HQL。从而能够使HQL生成正确的Sql语句;
同样的在Spirng JPA的配置中也有这样的一项
这个里面的属性 database 指的是使用什么数据库,第二个属性 databasePlatform指的是 使用哪个数据库的描述语言来解析HQL语句为Sql语句。这样第二个选项就与hibernateJpa的persistence.xml文件中的
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
重复,
但是在架构搭建的时候这两个是不冲突的,如果两边都配置了这个属性,而且两边的配置都不一样,系统会先考虑Spring JPA 的配置,另一个会忽略。如果在SrpingJPA的配置中没有配置以上两项,只是在HIbernate中配置,则系统会识别HibernateJpa配置的属性;
如果在系统中发现通过HQL语句生成的SQL语句不是拼写错了而是系统生成的sql的格式错了,或者使用的特殊关键字与当前的数据库不符,则就是配置这个数据库的sql描述的属性的时候配错了
在创建Spring 框架的地方要考虑到两个框架之间的融合性;