日韩精品欧美激情国产一区_中文无码精品一区二区三区在线_岛国毛片AV在线无码不卡_亞洲歐美日韓精品在線_使劲操好爽好粗视频在线播放_日韩一区欧美二区_八戒八戒网影院在线观看神马_亚洲怡红院在线色网_av无码不卡亚洲电影_国产麻豆媒体MDX

@Query注解

時間:2020-04-12 22:32:34 類型:JAVA
字號:    

  @Query注解

  @Query注解使用起來很簡單,默認的屬性是value,就是當前寫的SQL語句,有時會用到nativeQuery屬性,這個屬性是用來標記當前的SQL是本地SQL,還是符合JPA語法規(guī)范的SQL。這里需要解釋一下本地SQL和JPA語法規(guī)范的SQL區(qū)別。

  本地SQL,是根據(jù)實際使用的數(shù)據(jù)庫類型寫的SQL,這種SQL中使用到的一些語法格式不能被JPA解析以及可能不兼容其他數(shù)據(jù)庫,這種SQL稱為本地SQL,此時需要將nativeQuery屬性設置為true,否則會報錯。

  JPA語法規(guī)范的SQL,往往這種SQL本身是不適用于任何數(shù)據(jù)庫的,需要JPA將這種SQL轉換成真正當前數(shù)據(jù)庫所需要的SQL語法格式。

  注意:JPA很好的一個特性就是用JPA語法規(guī)范寫的SQL,會根據(jù)當前系統(tǒng)使用的數(shù)據(jù)庫類型改變生成的SQL語法,兼容數(shù)據(jù)庫類型的切換,如之前使用的是MySQL,現(xiàn)在換成Oracle,由于不同類型的數(shù)據(jù)庫,SQL語法會有區(qū)別,如果使用的是mybatis,就需要手動去改SQL兼容Oracle,而JPA就不用啦,無縫對接。

  說明:很大的時候使用JPA感覺都是為了兼容后期可能會有數(shù)據(jù)庫切換的問題,所以在使用JPA的時候,不要去使用本地SQL,這就違背了使用JPA的初衷,讓nativeQuery屬性保持默認值就可以啦!


<