java - 如何在 Hibernate 中执行这样的查询?加入

标签 java hibernate join

我有几个使用注释映射到数据库的对象类,需要一些帮助来了解如何组合 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/

相关文章:

java - 如何在 spring-data 中使用 CrudRepository 强制预加载?

MySQL 语句内连接

php - 使用 apache 对 Linux 上的 MySQL 数据库中的三个表进行内、外或完全联接

ruby - 如何使用 ruby​​ 项目解决 postgresql 中的 AmbigouslyColumn 错误

java - 二叉树遗传规划

java - 为什么我的 Java 代码不执行 System.out.println?

java - 无法使用 char 数组分割创建的字符串\n

java - Hibernate:我是否需要编写一个单独的 POJO 来从现有表中检索数据?

java - Hibernate 对 Spring-WS 无响应

java - 未捕获异常时的 Tomcat HttpThread 池异常处理