簡體   English   中英

列名稱作為Spring Data JPA查詢的參數

[英]Column name as a parameter to Spring Data JPA Query

有沒有一種方法可以將Entity屬性動態地注入@Query 我需要實現如下方法:

@Query("select e from #{#entityName} e where e.***columnName*** = ?2")
List<T> findAll(String ***columnName***, String value);

還有其他簡單的方法嗎?

您可以使用Spring Specification來完成。

您的指定方法將與以下方法類似:

public static Specification<Entity> byColumnNameAndValue(String columnName, String value) {
    return new Specification<Entity>() {
        @Override
        public Predicate toPredicate(Root<Entity> root,
                CriteriaQuery<?> query, CriteriaBuilder builder) {
            return builder.equal(root.<String>get(columnName), value);
        }
    };
}

請閱讀一些有關規范的信息,這是一個很好的工具。

https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/

http://docs.spring.io/spring-data/jpa/docs/current/api/org/springframework/data/jpa/domain/Specifications.html

暫無
暫無

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

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