【发布时间】:2014-06-20 16:47:49
【问题描述】:
如何在 Hibernate 中表示以下 SQL?
SELECT * FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.COLUMN1 = TABLE2.COLUMN1 OR TABLE1.COLUMN1 = TABLE2.COLUMN2 OR TABLE1.COLUMN1 = TABLE2.COLUMN3
TABLE1 的值可以存在于 TABLE2 的 COLUMN1、COLUMN2 或 COLUMN3 中。我需要这种关系,因为我将 TABLE2 作为对象嵌入到 TABLE1 的类中。
例如,
@ManyToOne
@JoinColumns({
@JoinColumn(name="COLUMN1", referencedColumnName="COLUMN1"),
@JoinColumn(name="COLUMN1", referencedColumnName="COLUMN2")
})
private TABLE2 object;
上面的代码不起作用并抛出以下错误:
原因:org.hibernate.MappingException:属性映射的列数错误:
【问题讨论】:
-
那么您需要一种方法将其转换为 HQL 吗?还是变成实体对象?代表到底是什么意思?
-
实体对象。我的意思是嵌入 TABLE2 在休眠中的样子。我已经修改了我的问题以包含更多关于类加入的描述。
标签: hibernate