我有一个2实体 - Klient 和 DocAcc 。为了访问我的数据,我使用Spring Data。这是我的存储库:
public interface DocAccRepository extends CrudRepository<DocAcc, Long> {
@Query("select d from DocAcc d where d.sals = klient.sals")
List<DocAcc> findByKlient(Klient klient);
}
这段代码没有用。错误:
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'klient.sals' [select d from vap.entity.DocAcc d where d.sals = klient.sals]
我的实体连接了多个字段。如何访问Query中的对象参数?
答案 0 :(得分:2)
您可以在@Query
中使用SpEL表达式public interface DocAccRepository extends CrudRepository<DocAcc, Long> {
@Query("select d from DocAcc d where d.sals = :#{#klient.sals}")
List<DocAcc> findByKlient(@Param("klient") Klient klient);
}
此处有更多信息:https://spring.io/blog/2014/07/15/spel-support-in-spring-data-jpa-query-definitions