我有几个使用注释映射到数据库的对象类,需要一些帮助来解决如何组合Hibernate查询以获得我想要的结果。
我正在使用Hibernate 3.6.5。我一直在使用Criteria,但如果它有效,请对Query等感到满意!
我是Hibernate的新手(可以管理简单的Criteria来按属性过滤对象,但是连接的东西都是新的),所以答案中的任何解释(或建议的阅读)都会很棒。
RawRead有一个包含String的标记代码字段。 Checkpoint,IncidentItem和Guard类都具有TagCode属性。
我想检索所有RawRead对象,其中TagCode与任何其他类(IncidentItem,Guard,Checkpoint)的任何标记代码值都不匹配。
一种脑转储/伪造的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没有任何映射到其他类。
答案 0 :(得分:2)
为了在HQL中连接对象,必须在应用程序级别的注释中映射它们之间的关系。如果没有映射关系,则需要在纯SQL中执行此类查询。