SPRING JPA 與 Hibernate JPA

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的配置中也有這樣的一項

 

<bean id= "jpaVendorAdapter"

     class= "org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" >

           <property name="database" value="MYSQL" />

          <property name="databasePlatform"value="org.hibernate.dialect.MySQL5Dialect" />

     </bean >

 

這個裏面的屬性  database  指的是使用什麼數據庫,第二個屬性 databasePlatform指的是 使用哪個數據庫的描述語言來解析HQL語句爲Sql語句。這樣第二個選項就與hibernateJpapersistence.xml文件中的

<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />

重複,

但是在架構搭建的時候這兩個是不衝突的,如果兩邊都配置了這個屬性,而且兩邊的配置都不一樣,系統會先考慮Spring JPA 的配置,另一個會忽略。如果在SrpingJPA的配置中沒有配置以上兩項,只是在HIbernate中配置,則系統會識別HibernateJpa配置的屬性;

如果在系統中發現通過HQL語句生成的SQL語句不是拼寫錯了而是系統生成的sql的格式錯了,或者使用的特殊關鍵字與當前的數據庫不符,則就是配置這個數據庫的sql描述的屬性的時候配錯了

 

在創建Spring 框架的地方要考慮到兩個框架之間的融合性;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章