2

我有一个非常简单的任务来查询表并使用某些参数进行过滤(此参数是其他表的外键)。

例如 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 =?
4

1 回答 1

1

我想您在某些对象映射上使用EAGER而不是获取。LAZY如果您实际上不需要EAGER使用LAZY,它应该使用您的DetachedCriteria.

于 2013-09-17T12:22:57.173 回答