gpt4 book ai didi

hibernate - 如何创建 findAllByUser 查询,其中用户是嵌入类的成员?

转载 作者:行者123 更新时间:2023-12-02 23:17:15 25 4
gpt4 key购买 nike

我在 Grails 应用程序中有接下来的两个域类:

class Room {
String name
RoomType roomType
def static findAllByUser = { user, params ->
List<Room> rooms = Room.findAll("from Room r where r.roomType.user = :user", [user: user], params)
return rooms
}
}

class RoomType {
String name
User user
}

我希望能够检索特定用户创建的所有房间。

def currentUser  = currentUser()
def rooms = Room.findAllByUser(currentUser)

为了实现这一目标,我在 Room 域类中实现了闭包 findAllByUser

但是,当我调用闭包时,我在这一行中遇到了空指针异常。

List<Room> rooms = Room.findAll("from Room r where r.roomType.user = :user", [user: user], params)

用户不为空。所以这一定是我可怜的HQL。谁能帮我吗?

最佳答案

我认为更好的选择是使用命名查询。它看起来更漂亮,而且还可以提供更多功能:

只需将其添加到您的 Room 域类

static namedQueries = { 
byUser { findUser ->
roomType {
eq 'user', findUser
}
}
}

然后这样调用它:

def roomsByUser = Room.byUser(currentUser).list()

关于hibernate - 如何创建 findAllByUser 查询,其中用户是嵌入类的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8082713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com