Mik*_*key 6 grails has-many grails-orm
我有一个域类,其中包含许多其他域类.我想要任何一个孩子而不关心哪个.例
class MyDomainClass {
static hasMany = [thingies:OtherDomainClass]
}
Run Code Online (Sandbox Code Playgroud)
我可以用愚蠢的方式做到这一点:
def findOne
myInstance.thingies.each{
findOne=it
}
Run Code Online (Sandbox Code Playgroud)
但有没有更好的方式:
def findOne = myInstance.thingies.grabTheMostConvenientOne()
Run Code Online (Sandbox Code Playgroud)
thingies是一个收藏品,所以你可以随意使用Collection中的所有东西.
您可以这样做的一个简单方法是:
def one = myInstance.thingies.asList().first()
Run Code Online (Sandbox Code Playgroud)
但是,您可能希望确保集合实际上首先包含一些元素.first()如果列表为空,文档没有明确说抛出IndexOutOfBoundsException,但我感觉它仍然可能.如果是这种情况,您可能需要:
def one = myInstance.thingies.size() > 0 ? myInstance.thingies.asList().first() : null
Run Code Online (Sandbox Code Playgroud)
或者,如果你想以牺牲一些可读性为代之以超简洁,你可以使用这种方法(John Wagenleitner提供):
def one = myInstance.thingies?.find { true }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5930 次 |
| 最近记录: |