我有三个表,并在jsf 2.x应用程序中映射JPA实体模型如下。
Foo Foo.java
Bar Bar.java
Zoo Zoo.java
Foo在实体模型上下文中与Bar和Zoo都有@oneToMany关系。在本机sql中,我能够加入其中三个工作正常。
select f.*, b.*, z.*
from Foo f
inner join Bar b
on f.foo_id = b.foo_id
inner join Zoo z
on z.foo_id = b.foo_id
where b.name = 'barName' and z.type = 'zooType";
我试图通过Spring JPA Data在Query注释中翻译本机sql但是我一直在获取org.hibernate.hgql.internal.ast.QuerySyntaxException:意外令牌。
有人可以指出我做错了什么吗?我尝试了一个内部联接"但我得到了同样的例外。
@Query("select f from Foo f inner join f.bars b inner join f.zoos z " +
"where b.name = ?1 " +
"where z.type = ?2")
List<Foo> findFoo(String name, String type);
答案 0 :(得分:0)
这是因为,你在@Query块中写了两个,也许你应该使用
@Query("select f from Foo f inner join f.bars b inner join f.zoos z " +
"where b.name = ?1 " +
"and z.type = ?2")
List<Foo> findFoo(String name, String type);
代替:)