簡體   English   中英

Spring數據查詢中是否有條件?

[英]Are there conditions in Spring data queries?

我有一個Spring Repository Interface和以下方法,可以根據人員的organizationalUnittype查找人員。

public interface PersonRepository extends CrudRepository<Person, Integer> {

    @Query("SELECT p FROM Person p "
        + "JOIN p.organizationalUnit ou "
        + "JOIN p.type type "
        + "WHERE p.name = ?1 "
        + "AND ou = ?2 "
        + "AND type = ?3")
    List<Person> filterPerson(String name, OrganizationalUnit u, Type t);
}

上面的代碼可以正常工作,但是如果ut的給定值為null ,則無論其類型或單位如何,我都需要查找所有人員。

有沒有一種方法可以根據條件聲明語句?

就像是:

@Query("SELECT p FROM Person p "
        + "JOIN p.organizationalUnit ou "
        + "JOIN p.type type "
        + "WHERE p.name = ?1 "
        + {?2 != null ? "AND ou = ?2 " : ""}
        + {?3 != null ? "AND type = ?3 " : ""}
        )

您可以這樣簡單地進行操作:

@Query("SELECT p FROM Person p "
        + "JOIN p.organizationalUnit ou "
        + "JOIN p.type type "
        + "WHERE p.name = ?1 "
        + "AND (?2 is null OR ou = ?2)"
        + "AND (?3 is null OR type = ?3)"
        )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM