![](/img/trans.png)
[英]Is there a way to use column name as a parameter in a query using 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/
和
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.