spring数据命名查询选择实体,其中两列相等

时间:2017-07-10 09:12:06

标签: mysql jpa spring-data

我想选择AuthorityAuthority.id相等的所有Authority.top s。虽然以下内容无法产生预期的结果,但如何使用命名查询但不是本地查询来实现它?

@Query("SELECT Authority WHERE Authority.id = Authority.top")  // how?
List<Authority> findTop();

2 个答案:

答案 0 :(得分:1)

或者:

1)没有别名:

@Query("FROM Authority WHERE id = top")  
List<Authority> findTop();

2)使用别名:

@Query("SELECT a FROM Authority a WHERE a.id = a.top") 
List<Authority> findTop();

在你的情况下,当然可以选择一个

答案 1 :(得分:0)

我认为查询在语法上是错误的。

必须是,

SELECT * FROM Authority WHERE Authority.id = Authority.top

或者您可以查询您感兴趣的列,

SELECT Authority.id, Authority.name FROM Authority WHERE Authority.id = Authority.top