我有一个非常直接的任务,使用一些参数查询表和过滤器(此参数是其他表的外键)。
例如,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 =?
答案 0 :(得分:1)
我想您在某些对象映射上使用EAGER
而不是LAZY
fetch。如果您实际上不需要EAGER
使用LAZY
,则应使用DetachedCriteria
生成更简单的查询。