2012-08-07 52 views
0

我有几个使用注释映射到数据库的对象类,并且需要一些帮助来解决如何将Hibernate查询放在一起以获得我想要的结果。如何在Hibernate中执行这样的查询?加入

我正在使用Hibernate 3.6.5。我一直在使用标准,但如果它的工作满意查询等!

我是Hibernate的新手(可以管理简单的Criteria按属性过滤对象,但连接的东西都是新的),所以在答案(或建议阅读)中的任何解释都会很好。

RawRead有一个包含字符串的标记代码字段。 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语言中看什么?

EDIT /加法: 的RawRead对象被映射到保护和检查点(具有属性调用检验点和一个称为防护件是这些类的两个实例 - 两者都是@ManyToOne)。

IncidentItem没有任何映射到其他类。

回答

2

为了在HQL中连接对象,必须在应用程序级别的注释中在它们之间映射关系。如果没有映射关系,则需要在普通SQL中执行像这样的查询。

+0

感谢感谢,我将努力争取SQL。这些类之间有一个部分映射(添加到我的问题上面),但并非全部映射。 所以很可能在SQL中完成所有操作而不是一些HQL和一些SQL。 – DaFoot 2012-08-08 10:00:50