我有几个使用注解映射到数据库的对象类,并且需要一些帮助来解决如何将Hibernate查询组合在一起以获得所需的结果。

我正在使用Hibernate 3.6.5。我一直在使用Criteria,但对Query等满意(如果可以的话)!

我是Hibernate的新手(可以管理简单的Criteria来按属性过滤对象,但连接是全新的),因此答案中的任何解释(或建议阅读的内容)都很好。

RawRead具有一个包含字符串的tagcode字段。
Checkpoint,IncidentItem和Guard类也都具有TagCode属性。

我想从其他任何类(IncidentItem,Guard,Checkpoint)中检索TagCode与任何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中执行类似的查询。

10-08 16:17