【问题标题】:How to add fields for joins in hibernate如何在休眠中添加连接字段
【发布时间】:2014-04-01 13:27:10
【问题描述】:

我是 hibernate 新手,需要您的帮助。

我的目标是定义休眠类并最终运行以下 SQL 查询

SELECT *
FROM ( SELECT *  FROM {quiz_question_instances} WHERE quiz =5 ) AS mqqi
LEFT JOIN {question_usages} mqu ON mqu.id =139
LEFT JOIN {question_attempts} mqea ON mqea.questionusageid = mqu.id
AND mqea.questionid = mqqi.question

我不知道如何在休眠状态下进行连接。我应该为这个查询中提到的所有表创建实体类吗?

另外,我正在使用 spring 将这些数据显示到网页上。我也定义了一个 dao 层。如何在我的 dao 层中编写此查询?

感谢大家的帮助!

编辑:-

附加数据库表的列。

问题尝试

问题用法

测验问题实例

【问题讨论】:

  • 在休眠状态下,您不使用表,而是使用对象。如果您提供对象结构和映射方式,这将对我们有用
  • 我为每个表创建一个类。我将每一列映射到一个变量并使用@Column 注释。我不知道如何将来自连接的列声明为变量。这就是我寻求帮助的地方:)
  • Hibernet 自己处理连接,你只需要创建它的 hbm 或声明 annotation
  • 嗨 Ashish,你能告诉我任何我可以遵循的教程吗?
  • 如上所述,hibernate 会自动映射 joincolumns..您必须为此使用 ManyToOne / ManyToMany (jointable) annotations..结合 JoinColumn

标签: java spring hibernate


【解决方案1】:

您可以在 interfaz Criteria (org.hibernate.Criteria)、HQL、...方面提供帮助。

这里有一个join的解决方案:

Hibernate Criteria Join with 3 Tables

你也有解释:

http://kruders.com/hibernate/hibernate-criteria-on-multiple-tables/

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-11
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 2016-07-15
    • 2011-01-05
    相关资源
    最近更新 更多