2

Grails - 如何在不强制加载整个对象的情况下公开多对一关联属性的 id?

class Task {
  User belongsTo
  User createdBy
}
class User {
  ...
}

我可以从 Task 获取用户 ID,而不会导致整个用户对象的延迟加载吗?一般有没有办法做到这一点,还是会涉及每个类的自定义查询?这实际上涉及通过 BlazeDS 返回的 DTO 对象——我需要的只是 id,而不是关联的对象。

4

2 回答 2

0

显然,您需要使用魔术符号 belongsToId 和 createdById - 请参阅GRAILS-2570

于 2013-11-12T17:27:53.967 回答
0

Grails 默认启用了惰性关联,因此您不必担心所有链接对象的加载,除非您启用急切获取。此外,您可以使用命名查询或休眠标准预测:例如

 def taskCriteria = Task.createCriteria()  
 def users = taskCriteria.list{//or get
     projections {
         property "id"
     } 
     user{
         eq("userName", "Joe")
     }   
 }

以上将只为名为 Joe 的用户提取任务的 ID。

于 2011-04-01T16:09:44.557 回答