Criteria API查询生成

时间:2013-09-17 09:16:24

标签: sql hibernate criteria

我有一个非常直接的任务,使用一些参数查询表和过滤器(此参数是其他表的外键)。

例如,Table1包含以下字段:

id, name , description, company_id;

我有一个方法,作为输入company_id(不是公司对象)并返回table1中的所有记录。 条件查询如下所示:

DetachedCriteria criteria = DetachedCriteria.forClass(Table1.class)
       .add(Restrictions.eq("company.id", companyId));

问题是生成的查询过于复杂,因为它连接了几个表来执行此操作。此查询不是“生产就绪”

有没有办法建立像这样的SQL查询的标准?:

SELECT * from table1 where company_id =?

1 个答案:

答案 0 :(得分:1)

我想您在某些对象映射上使用EAGER而不是LAZY fetch。如果您实际上不需要EAGER使用LAZY,则应使用DetachedCriteria生成更简单的查询。