我将 Hibernate 对象定义为
Class SomeText{
private Long textId;
private Set<Tag> Tags = new HashSet<Tag>();
@ManyToMany(cascade={CascadeType.PERSIST,CascadeType.MERGE })
@JoinTable(name = "text_tag_reln",
joinColumns = { @JoinColumn(name = "textId") },
inverseJoinColumns = { @JoinColumn(name = "tagId") })
public Set<Tag> getTags() {
return Tags;
}
}
Class Tag{
private long tagId;
}
我现在想要获取所有那些没有任何标签的 SomeText 对象。我编写了以下 HQL,但它不起作用。
select st from SomeText as st where st.Tags = null
我该怎么做才能获取这些记录。在 SQL 世界中,我会编写一个查询,该查询将从 text_tag_reln 表中获取所有不同的 textId,并获取该集合中不存在的所有 SomeText id。我如何在 HQL 中执行此操作?
最佳答案
你试过吗
select st from SomeText as st where st.Tags is empty
另请参阅:
关于java - Hibernate:如何编写 HQL 来获取没有其标识关系记录的实体的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3684472/