【发布时间】:2018-10-31 00:58:19
【问题描述】:
是否可以在@Query注解中调用参数的方法?
例子:
@Query("SELECT user " +
"FROM User user " +
"WHERE (?1.getFilter() = '*' OR user.name = ?1)");
List<User> getUsers(UserNameFilter userNameFilter);
我知道我可以这样做:
@Query("SELECT user " +
"FROM User user " +
"WHERE (?1 = '*' OR user.name = ?1)");
List<User> getUsers(String userName);
但是当过滤器数量增加时,这意味着我需要更改一些参数。
【问题讨论】:
-
我认为这不可能。您可能想要使用 Criteria Api 并传递 Filter 对象。
标签: java spring hibernate spring-data spring-data-jpa