无法通过Spring JPA Data在Query注释中连接三个实体模型

时间:2017-07-13 23:00:49

标签: spring hibernate jpa

我有三个表,并在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);

1 个答案:

答案 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);

代替:)