我有几个使用注释映射到数据库的对象类,需要一些帮助来了解如何组合 Hibernate 查询以获得我想要的结果。
我正在使用 Hibernate 3.6.5。我一直在使用 Criteria,但如果它有效的话,我对 Query 等感到满意!
我是 Hibernate 新手(可以管理简单的条件来按属性过滤对象,但连接内容都是新的),因此答案(或建议阅读)中的任何解释都会很棒。
RawRead 有一个包含字符串的标记代码字段。 Checkpoint、IncidentItem 和 Guard 类也都具有 TagCode 属性。
我想检索 TagCode 与任何其他类(IncidentItem、Guard、Checkpoint)中的任何 tagcode 值都不匹配的所有 RawRead 对象。
一种大脑转储/伪 SQL 代码:
select raw.* from
RAWREADS raw, checkpoints c, GUARDS g, INCIDENTITEMS i
where
raw.tagcode != c.TAGNO
and raw.TAGCODE != g.IDTAG
and raw.TAGCODE != i.IDTAG;
我意识到这不会有效等,只是我的想法的一个说明。
您能建议一下 Hibernate 语言中应该看什么吗?
编辑/添加: RawRead 对象映射到 Guard 和 Checkpoint(有一个名为 checkpoint 的属性和一个名为 Guard 的属性,它们都是这些类的实例 - 两者都是 @ManyToOne)。
IncidentItem 没有到其他类的任何映射。
最佳答案
为了在 HQL 中连接对象,必须在应用程序级别的注释中在它们之间映射关系。如果没有映射关系,您将需要在纯 SQL 中执行这样的查询。
关于java - 如何在 Hibernate 中执行这样的查询?加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850735/