欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用JPA自定義SQL查詢結(jié)果

 更新時(shí)間:2021年11月22日 08:41:25   作者:coderping  
這篇文章主要介紹了使用JPA自定義SQL查詢結(jié)果,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

JPA自定義SQL查詢結(jié)果

很多時(shí)候都會(huì)遇到自定義sql,自定義返回字段,而不是pojo類。這個(gè)情況要通過(guò)接口定義返回。

直接上代碼

 @Query(value = "select m.field AS field,COUNT(m.field) AS size from MigrationObject m where m.xmlName = ?1 and m.groupName = ?2 group by m.field")
    List<WorkCenter> getKey(String xmlName, String groupName);

對(duì)于這種情況,只返回了兩個(gè)字段,就需要定義一個(gè)接口來(lái)接收(注意AS別名的配置)

public interface WorkCenter { 
    String getField();
    String getSize();
}

最后跑一下demo代碼

   List<WorkCenter> list = migrationObjectRepository.getKey("EN_Work centerResource.xml","Key");
        for (WorkCenter workCenter:list){
            System.out.println(workCenter.getField());
            System.out.println(workCenter.getSize());
        }

ARBPL
5
SPRAS
2
CANUM
2
ENDDA
1
WERKS
5

JPA的SQL查詢

一 點(diǎn)睛

JAP通過(guò)SQL查詢一般有兩種方法:通過(guò)NamedQuery查詢和使用@Query查詢。

二 JPA的NamedQuery查詢

1 說(shuō)明

Spring Data JPA支持用JPA的NameQuery來(lái)定義查詢方法,即一個(gè)名稱映射一個(gè)查詢語(yǔ)句。

2 定義

@Entity 
@NamedQuery(name = "Person.withNameAndAddressNamedQuery",
query = "select p from Person p where p.name=?1 and address=?2")
public class Person {
    ......
}

3 使用方法

public interface PersonRepo extends JpaRepository<Person,Long>{
    //使用的是NameQuery里定義的查詢語(yǔ)句,而不是根據(jù)方法名稱來(lái)查詢
    Person withNameAndAddressNamedQuery(String name,String address);
}

三 使用@Query查詢

1 使用參數(shù)索引

public interface PersonRepo extends JpaRepository<Person,Long>{
    @Query("select p from Person p where p.address= ?1")
    List<Person> findByAddress(String address);
}

2 使用命名參數(shù)

public interface PersonRepo extends JpaRepository<Person,Long>{
    @Query("select p from Person p where p.name= :name and p.address= :address")
    Person withNameAndAddressQuery(@Param("name")String name,@Param("address")String address);
}

3 更新查詢

public interface PersonRepo extends JpaRepository<Person,Long>{
    @Modifying
    @Transactional
    @Query("update Person p set p.name=?1")
    int setName(String name);//表示更新語(yǔ)句影響的行數(shù)
}

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

相關(guān)文章

  • java對(duì)接微信支付之JSAPI支付(微信公眾號(hào)支付)

    java對(duì)接微信支付之JSAPI支付(微信公眾號(hào)支付)

    這篇文章主要給大家介紹了關(guān)于java對(duì)接微信支付之JSAPI支付(微信公眾號(hào)支付)的相關(guān)資料,微信JSAPI支付是近年來(lái)非常流行的一種支付方式,它使用了微信支付的SDK和demo來(lái)實(shí)現(xiàn)支付接口的對(duì)接,需要的朋友可以參考下
    2023-07-07
  • Java快速排序的實(shí)現(xiàn)方法示例

    Java快速排序的實(shí)現(xiàn)方法示例

    快速排序是對(duì)冒泡排序的一種改進(jìn),下面這篇文章主要給大家介紹了關(guān)于Java快速排序的實(shí)現(xiàn)方法,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-03-03
  • SpringData Repository接口用法解析

    SpringData Repository接口用法解析

    這篇文章主要介紹了SpringData Repository接口用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 深入學(xué)習(xí)Java同步機(jī)制中的底層實(shí)現(xiàn)

    深入學(xué)習(xí)Java同步機(jī)制中的底層實(shí)現(xiàn)

    在多線程編程中我們會(huì)遇到很多需要使用線程同步機(jī)制去解決的并發(fā)問(wèn)題,這些同步機(jī)制是如何實(shí)現(xiàn)的呢?下面和小編來(lái)一起學(xué)習(xí)吧
    2019-05-05
  • Springboot多種情況yml配置代碼實(shí)例

    Springboot多種情況yml配置代碼實(shí)例

    這篇文章主要介紹了Springboot多種情況yml配置代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 使用mybatis進(jìn)行數(shù)據(jù)插入時(shí)返回自增id的方法及注意點(diǎn)

    使用mybatis進(jìn)行數(shù)據(jù)插入時(shí)返回自增id的方法及注意點(diǎn)

    這篇文章主要給大家介紹了關(guān)于使用mybatis進(jìn)行數(shù)據(jù)插入時(shí)返回自增id的方法及注意點(diǎn),在插入一條數(shù)據(jù)之后需要返回它的自增主鍵id,因?yàn)椴迦氲膶?shí)體類數(shù)據(jù)id為空,后面的邏輯還需要這個(gè)id,需要的朋友可以參考下
    2023-09-09
  • Maven中dependencyManagement管理項(xiàng)目依賴項(xiàng)

    Maven中dependencyManagement管理項(xiàng)目依賴項(xiàng)

    在開(kāi)發(fā)?Java?項(xiàng)目時(shí),管理和協(xié)調(diào)依賴項(xiàng)的版本號(hào)是一項(xiàng)重要而繁瑣的任務(wù),本文主要介紹了Maven中dependencyManagement管理項(xiàng)目依賴項(xiàng),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Java虛擬機(jī)之類加載

    Java虛擬機(jī)之類加載

    這篇文章主要介紹了Java虛擬機(jī)之類加載,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • springboot枚舉類型傳遞的步驟

    springboot枚舉類型傳遞的步驟

    這篇文章主要介紹了springboot枚舉類型傳遞的步驟,幫助大家更好的理解和學(xué)習(xí)使用springboot,感興趣的朋友可以了解下
    2021-04-04
  • Maven 項(xiàng)目生成jar運(yùn)行時(shí)提示“沒(méi)有主清單屬性”

    Maven 項(xiàng)目生成jar運(yùn)行時(shí)提示“沒(méi)有主清單屬性”

    這篇文章主要介紹了Maven 項(xiàng)目生成jar運(yùn)行時(shí)提示“沒(méi)有主清單屬性”,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03

最新評(píng)論