【发布时间】:2014-11-24 17:03:59
【问题描述】:
我使用 Grails 2.2.4(在 Grails 2.3.11 中的行为相同)并且有一个引用域类 B 的域类 A
class A {
static hasOne = [b: B]
static constraints = { b nullable: true }
}
class B {
static belongsTo = [a: A]
}
我尝试查找所有具有 B 的 A 实例。
A.findAllByBIsNotNull()*.b
返回 B 和空值列表:
[null, null, b1, b2, null, ...]
怎么样?
如果我使用也会发生同样的情况
A.withCriteria {
isNotNull 'b'
}*.b
我做错了什么?
更新:
我意识到问题出在hasOne。如果不是static hasOne = [b: B],而是B b,它可以工作。前者将外键移动到表 B,后者在表 A 中创建外键关系。
那么为什么在前一种情况下查询不起作用,当外键在 B 内时,我如何查询所有 As,没有 B?
【问题讨论】:
-
如果你打电话给
println A.findAllByBIsNotNull()*.b*.id会发生什么?
标签: grails grails-orm