假设我有一个User
包含Organization
字段的域对象。我可以使用外键映射它,并让 hibernate 处理其余的事情,如下所示:
class User {
String id
String firstName
Organization organization
static mapping = {
table 'user'
id column: "user_id", generator:'assigned'
organization column: 'organization_Id'
}
}
class Organization {
String id
String name
String address
static mapping = {
table 'organization'
id column: "organization_id", generator:'assigned'
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但是当我想查询组织中的所有用户时,我可能必须这样做
String orgId = "some id"
Organization org = Organization.findById(orgId)
List<User> users = User.findAllByOrganization(org)
Run Code Online (Sandbox Code Playgroud)
不必传递Organization
域对象而只需传递 Organization.Id(表上的外键)会很方便User
。
我希望我的代码如下所示:
String orgId = "some id"
List<User> users = User.findAllByOrganization(orgId)
Run Code Online (Sandbox Code Playgroud)
经过研究,这似乎是不可能的,我需要首先查询Organization
然后使用该对象。有我不知道的方法吗?
我喜欢的一种方法是使用域对象的代理而不是它的水合实例。您可以使用load()
来获取代理。这意味着只要您不访问id
.
def users = Users.findByOrganization(Organization.load(orgId))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
680 次 |
最近记录: |