一尘不染

子树异常hibernate和意外结束

hibernate

我是Hibernate的新手。

我有一个ItemPOJO,其中包含一个Set<String>标签。标签包含在该Item表的另一个数据库表中,因此我进行了连接以填充pojo。

我正在尝试从我的《 Java Persistance with Hibernate》一书中运行一个简单的示例查询from Item item where 'hello' member of item.labels。只是出于某种原因,我得到了

 `org.hibernate.hql.ast.QuerySyntaxException: unexpected end of subtree[from /*qualified class path*/.Item item where 'hello' member of item.labels]`

是什么导致此问题?

这是我的POJO:

public class Item
       private int uuid;
       private Set<String>labels = new HashSet<String>();

       @Id
       public int getUuid(){
          return uuid; 
       }

       @CollectionOfElements
       @JoinTable(name="labels", joinColumns=@JoinColumn(name="uuid"))
       @Column(name="label")
       public Set<String> getLabels(){
            return labels;
       }
 }

阅读 190

收藏
2020-06-20

共1个答案

一尘不染

对于基元集合,应使用HQL查询,如下所示:

from Item item join item.labels lbls where 'hello' in (lbls)

PS:因为“标签”是OneToMany或ManyToMany变体,所以需要“ join”,因为“ lbls”是一个集合,所以需要括号

2020-06-20