【发布时间】:2018-01-10 18:53:34
【问题描述】:
我想忽略 createAlias 中的默认加入限制。我有一对一的关系。
我的问题是 Hibernate 为连接关系生成默认限制。
波乔
注意:charge table 中没有 diagnosticTemplate 列。
Charge.java
@OneToOne(mappedBy = "charge")
private DiagnosticTemplate diagnosticTemplate;
DiagnosticTemplate.java
@OneToOne
@JoinColumn(name = "charge")
@Exclude
private Charge charge;
查询
select
*
from
charges c
inner join diagnostic_template dt
on (dt.charge = c.id and dt.status=1) or (dt.status=0)
标准
Criteria criteria = getSession().createCriteria(Charge.class, "charge")
.createAlias("charge.diagnosticTemplate", "diagnosticTemplate",
JoinType.INNER_JOIN,
Restrictions.or(
Restriction.and(Restrictions.eqProperty("charge.id",
"diagnosticTemplate.charge"),
Restrictions.eq("diagnosticTemplate.status",true)),
Restrictions.eq("diagnosticTemplate.status",false) ))
休眠查询
select
*
from
charges c
inner join diagnostic_template dt
on dt.charge = c.id and (dt.charge = c.id and dt.status=1) or (dt.status=0)
如何避免这种情况?还是我的关系有什么问题?
请帮忙..!
【问题讨论】:
标签: java mysql hibernate hibernate-criteria