我是hiberante的新手。需要指出正确的方向。
我需要遍历表“target_table”中的所有记录,其中存在基于其他表的其他约束
提供所需数据记录的SQL是
select target_table.id, ....
from person,
target_table,
another_table
where person.id = target_table.person_Id
and target_table.dropEventId = another_table.id
and another_table.to_Vendor_Timestamp < to_date('Jul 29 2012','MON dd YYYY')
and person.identifyer = 'foobar';
不确定获取这些记录的最佳方式。有人可以推荐正确的方法吗? 目前我正在开始做事
的内容Criteria criteria = session.createCriteria(TargetTable.class);
Criteria personCriteria = criteria.createCriteria("person");
personCriteria.add(Restriction.equal("idenifyier",identifyier);
Criteria anotherTableConstriant = constriant.add("another_table");
anotherTableConstraint.add(Restriction.lessthan("toVendorTimeStamp", someDateObject);
但我如何得到其余的约束。
答案 0 :(得分:0)
永远不要认为Hibernate是“使用SQL / DB的另一种方式”。你应该始终确保你有适当的实体和实体之间的关系。
似乎从你的例子中,你应该有一个Target-&gt; Another(称为dropEvent)和Target-&gt; Person(假设它是人)的关系。
HQL就像是
from Target t
where t.person.identifier = :someId
and t.dropEvent.vendorTimeStamp < :someTime
如果您发现自己仍然总是想到加入表等,那么很可能您没有正确使用Hibernate。在这种情况下,我发现Hibernate不会帮助你。如果您的应用程序是以这种以数据库为中心的思维模式设计的,请考虑使用iBatis。