Hibernate:我如何编写 HQL 来获取实体的记录,而没有记录其识别关系
Posted
技术标签:
【中文标题】Hibernate:我如何编写 HQL 来获取实体的记录,而没有记录其识别关系【英文标题】:Hibernate: How do I write the HQL for getting records of an entity without records for its identifying relation 【发布时间】:2010-09-10 12:10:38 【问题描述】:我将 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 中做到这一点?
【问题讨论】:
您在创建对象时将 Tags 设置为 new HashSet你试过了吗
select st from SomeText as st where st.Tags is empty
另请参阅:
Chapter 14. HQL: The Hibernate Query Language【讨论】:
啊!一个两个字的答案,我在任何地方都找不到。非常感谢!以上是关于Hibernate:我如何编写 HQL 来获取实体的记录,而没有记录其识别关系的主要内容,如果未能解决你的问题,请参考以下文章
Hibernate HQL - 从今天开始获取实体的下一个日期