【发布时间】:2010-11-19 18:04:18
【问题描述】:
我想将 Hibernate 的 Criteria API 准确地用于每个人都说可能是它最可能的用例,应用复杂的搜索条件。问题是,我要查询的表并不完全由原始值组成,而是部分来自其他对象,我需要查询这些对象的 id。
我发现两年前的this article 表明这是不可能的。以下是我尝试的方法,但没有成功,Hibernate 的其他方面我知道在字符串文字中支持这种点表示法以指示对象嵌套。
if (!lookupBean.getCompanyInput().equals("")) {
criteria.add(Restrictions.like("company.company", lookupBean.getCompanyInput() + "%"));
}
编辑:
这是我的正确分解代码,用于完成我在上面尝试的操作,使用下面第一个答案的建议;请注意,我什至使用了额外的 createCriteria 调用来对另一个关联对象/表中的属性进行排序:
if (!lookupBean.getCompanyValue().equals("")) {
criteria.createCriteria("company").add(
Restrictions.like("company", lookupBean.getCompanyValue() + "%"));
}
List<TrailerDetail> tdList =
criteria.createCriteria("location").addOrder(Order.asc("location")).list();
【问题讨论】:
标签: java hibernate hibernate-criteria