簡體   English   中英

如何使用Spring JPA查詢名稱約定查詢通配符

[英]How to use Spring JPA query name convention to query wildcard

我正在使用JPA查詢名稱約定來查詢數據庫。 它確實提供了一種很好的查詢方式,為我節省了很多精力。 以下是我用來按姓名和性別查詢的一個示例。

public interface SysUserRepository extends CrudRepository<SysUserEntity, Integer>{
   SysUserEntity findByUserNameAndSex(String name, String sex);
}

它工作正常,但我不知道它是否支持通過通配符查詢。 例如,我要搜索名稱以“ Z”開頭的所有男人。 如何使用上述方法為我執行該查詢? 所以我想寫下面的東西做查詢:

  findByUserNameAndSex("Z*", "male")

JPA是否支持這種查詢?

參考此文檔 ,您可以使用“ StartingWith”:

SysUserEntity findByNameStartingWithAndSex(String name, String sex);

這對應於:

@Query("select su from sysuser su where su.name like ?1% and su.sex = ?2")

您可以這樣創建查詢:

Query query = em.createQuery("SELECT c FROM table c WHERE c.sex = :sex AND c.name LIKE CONCAT(:name, '%')");
query.setParameter('sex', sex);
query.setParameter('name', name);

暫無
暫無

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

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