我有一个看起来像这样的方法:
static UserEvent get(long userId, long eventId) {
UserEvent.find 'from UserEvent where user.id=:userId and event.id=:eventId',
[userId: userId, eventId: eventId]
}
我用一些测试数据来称呼它两次:
println UserEvent.get(1, 1) //I know this has value
println UserEvent.get(1,2) //I know this does not
以上两个语句导致:
scheduler.UserEvent : null
null
问题
有什么不同?我该如何为是否存在东西写一个If条件。
更新
我正在创建这样的对象:
def event = Events.findById(params.eventid)
def user = User.findById(params.userid)
UserEvent.create(user, event, true)
最佳答案
@tim_yates是正确的,所检索的对象没有id属性。看起来像M对M的关系。
因此,在第一种情况下,将返回一个实例,但其ID为null。
在第二种情况下,找不到对象。
您可以使用类似:
def ue = UserEvent.get(userId, eventId)
if (ue && ue instanceof UserEvent) { //do something }
else { //do something else }
希望这可以帮助。