亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

@Query注解的原生用法和native用法解析

 更新時(shí)間:2021年08月27日 14:35:33   作者:傲來霧-花果香  
這篇文章主要介紹了@Query注解的原生用法和native用法解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@Query注解的原生用法和native用法

1. @Query原生用法

@Query(value = "select u.id, u.name from User u, town t where u.id = t.id and t.place =:name")
User findUserByPlace(@Param("place") String place);
 
@Query(value = "select new User(u.id, u.name) from User u, town t where u.id = t.id and t.place = ?1") 
User UsergetUserByPlace(String place);

上面兩個(gè)方法的效果是一樣的,這是原生方法。

2. @Query的native查詢用法

@Query(value="select * from user u, town t where u.id = t.id and t.place = ?1", nativeQuery = true)
User UsergetUserByPlace(String place);

@Query的native的查詢方法要增加nativeQuery = true,默認(rèn)是false,這樣查詢的時(shí)候就是使用原生的sql語句進(jìn)行查詢數(shù)據(jù)庫(kù)的操作。

有nativeQuery = true和沒有的區(qū)別

有nativeQuery = true時(shí)

是可以執(zhí)行原生sql語句,所謂原生sql,也就是說這段sql拷貝到數(shù)據(jù)庫(kù)中,然后把參數(shù)值給一下就能運(yùn)行了,比如:

@Query(value = "select * from product_rel where audit_id=?1 and process_object=0 ",nativeQuery = true)
List<ProductRel> findAllByProductAuditId(Integer id);

這個(gè)時(shí)候,把select * from product_rel where audit_id=?1 and process_object=0拷貝到數(shù)據(jù)庫(kù)中,并給audit_id賦一個(gè)值,那么這段sql就可以運(yùn)行。其中數(shù)據(jù)庫(kù)表在數(shù)據(jù)庫(kù)中的表名就是product_rel,字段audit_id在數(shù)據(jù)庫(kù)中也是真實(shí)存在的字段名。

沒有nativeQuery = true時(shí)

就不是原生sql,而其中的select * from xxx中xxx也不是數(shù)據(jù)庫(kù)對(duì)應(yīng)的真正的表名,而是對(duì)應(yīng)的實(shí)體名,并且sql中的字段名也不是數(shù)據(jù)庫(kù)中真正的字段名,而是實(shí)體的字段名。例如:

@Query("select ratio from MdmRatio ratio  where enabledNum=1 ")
List<MdmUtilThreeProjection> findByMdmUtilThreeProjection();

此中,select ratio from MdmRatio ratio 中的MdmRatio為實(shí)體名,不是真正的數(shù)據(jù)庫(kù)表名,真正的數(shù)據(jù)庫(kù)表名是mdm_ratio(如上圖@Table里面寫的那樣,MdmRatio實(shí)體對(duì)應(yīng)的數(shù)據(jù)庫(kù)表名是mdm_ratio。

但不一定都是這樣的,可能你的MdmRatio實(shí)體對(duì)應(yīng)的數(shù)據(jù)庫(kù)表是mdm_ratio_abc,但whatever,隨便是什么,只要它真實(shí)存在就Ok),而查詢條件中的enabledNum在數(shù)據(jù)庫(kù)中真正的名字是enabled_num。

這兩個(gè)的作用是一樣的,只是寫法不同而已。涉及到HQL的知識(shí)。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于兩個(gè)BeanUtils.copyProperties()的用法及區(qū)別

    關(guān)于兩個(gè)BeanUtils.copyProperties()的用法及區(qū)別

    這篇文章主要介紹了關(guān)于兩個(gè)BeanUtils.copyProperties()的用法及區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Intellij IDEA 2017新特性之Spring Boot相關(guān)特征介紹

    Intellij IDEA 2017新特性之Spring Boot相關(guān)特征介紹

    Intellij IDEA 2017.2.2版本針對(duì)Springboot設(shè)置了一些特性,本篇文章給大家簡(jiǎn)單介紹一下如何使用這些特性,需要的朋友參考下吧
    2018-01-01
  • MyBatis-Plus多表聯(lián)合查詢并且分頁(3表聯(lián)合)

    MyBatis-Plus多表聯(lián)合查詢并且分頁(3表聯(lián)合)

    這篇文章主要介紹了MyBatis-Plus多表聯(lián)合查詢并且分頁(3表聯(lián)合),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Spring循環(huán)依賴代碼演示及解決方案

    Spring循環(huán)依賴代碼演示及解決方案

    這篇文章主要介紹了Spring循環(huán)依賴實(shí)現(xiàn)過程,Spring的解決循環(huán)依賴是有前置條件的,要解決循環(huán)依賴我們首先要了解Spring Bean對(duì)象的創(chuàng)建過程和依賴注入的方式
    2023-04-04
  • 詳解Mybatis極其(最)簡(jiǎn)(好)單(用)的一個(gè)分頁插件

    詳解Mybatis極其(最)簡(jiǎn)(好)單(用)的一個(gè)分頁插件

    這篇文章主要介紹了詳解Mybatis極其(最)簡(jiǎn)(好)單(用)的一個(gè)分頁插件,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2016-12-12
  • SpringBoot中MyBatis-Plus 查詢時(shí)排除某些字段的操作方法

    SpringBoot中MyBatis-Plus 查詢時(shí)排除某些字段的操作方法

    這篇文章主要介紹了SpringBoot中MyBatis-Plus 查詢時(shí)排除某些字段的操作方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Java中Object用法詳解

    Java中Object用法詳解

    Java是面向?qū)ο蟮木幊陶Z言,而在面向?qū)ο笾校械腏ava類都有一個(gè)共同的祖先類,這就是Object,那么Object都有哪些特性呢?今天小編就簡(jiǎn)單跟大家分析一下,感興趣的同學(xué)可以跟著小編一起學(xué)習(xí)
    2023-05-05
  • SpringBoot使用Scheduling實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼

    SpringBoot使用Scheduling實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼

    Spring Boot提供了一種方便的方式來實(shí)現(xiàn)定時(shí)任務(wù),即使用Spring的@Scheduled注解,通過在方法上添加@Scheduled注解,我們可以指定方法在何時(shí)執(zhí)行,本文我們就給大家介紹一下SpringBoot如何使用Scheduling實(shí)現(xiàn)定時(shí)任務(wù),需要的朋友可以參考下
    2023-08-08
  • JAVA設(shè)計(jì)模式之備忘錄模式原理與用法詳解

    JAVA設(shè)計(jì)模式之備忘錄模式原理與用法詳解

    這篇文章主要介紹了JAVA設(shè)計(jì)模式之備忘錄模式,簡(jiǎn)單說明了備忘錄模式的概念、原理并結(jié)合實(shí)例形式分析了java備忘錄模式的具體定義及使用方法,需要的朋友可以參考下
    2017-08-08
  • 關(guān)于SpringBoot mysql數(shù)據(jù)庫(kù)時(shí)區(qū)問題

    關(guān)于SpringBoot mysql數(shù)據(jù)庫(kù)時(shí)區(qū)問題

    在后端開發(fā)過程中經(jīng)常會(huì)遇到幾個(gè)時(shí)區(qū)設(shè)置問題,今天分幾種情況給大家介紹SpringBoot mysql數(shù)據(jù)庫(kù)時(shí)區(qū)問題,感興趣的朋友跟隨小編一起看看吧
    2021-06-06

最新評(píng)論