我有几个使用注解映射到数据库的对象类,并且需要一些帮助来解决如何将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中执行类似的查询。