问题描述
静态UserEvent get(long userId,long eventId){
userEvent.find',其中user.id =:userId和event.id =:eventId',
[userId:userId,eventId:eventId]
}
我用两次测试数据调用它: println UserEvent.get(1,1)//我知道这有价值
println UserEvent.get(1,2)//我知道这不是
$ p
$ b
以上两条语句的结果如下:
scheduler.UserEvent:null
null
问题
有什么区别?
更新
$ b $我怎样才能写出If条件b 我创建这样的对象:
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){//做点什么}
else {//做其他事情}
希望这会有所帮助。
I have a method that looks like this:
static UserEvent get(long userId, long eventId) {
UserEvent.find 'from UserEvent where user.id=:userId and event.id=:eventId',
[userId: userId, eventId: eventId]
}
I'm calling it two times with some test data:
println UserEvent.get(1, 1) //I know this has value
println UserEvent.get(1,2) //I know this does not
The above two statements result in:
scheduler.UserEvent : null
null
Question
What is the difference? How can I write an If condition for when something is present or not..
Update
I'm creating the object like this:
def event = Events.findById(params.eventid)
def user = User.findById(params.userid)
UserEvent.create(user, event, true)
解决方案 @tim_yates is right, the object that is retrieved doesn't have an id property. Looks like an M to M relationship.
So in the first case an instance is being returned but it's ID is null.In the second case the object isn't found.
You can use something like:
def ue = UserEvent.get(userId, eventId)
if (ue && ue instanceof UserEvent) { //do something }
else { //do something else }
Hope this helps.
这篇关于Groovy中不同类型的null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!