最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

@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);

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

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,這樣查詢的時候就是使用原生的sql語句進(jìn)行查詢數(shù)據(jù)庫的操作。

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

有nativeQuery = true時

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

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

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

沒有nativeQuery = true時

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

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

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

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

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

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

相關(guān)文章

最新評論

宣武区| 双流县| 突泉县| 祁东县| 杂多县| 崇阳县| 雷州市| 翁源县| 东乌珠穆沁旗| 宾川县| 漳浦县| 盐池县| 凤阳县| 华亭县| 鞍山市| 永吉县| 西贡区| 甘南县| 铅山县| 永德县| 渭源县| 民权县| 株洲县| 繁昌县| 腾冲县| 弋阳县| 绥宁县| 蕲春县| 泰州市| 青州市| 武汉市| 尼木县| 仁怀市| 开远市| 远安县| 常山县| 海门市| 东阳市| 满洲里市| 获嘉县| 囊谦县|