我有两个域类:User和Book。
class Book implements Serializable{
String bookName
Timestamp createdDateTime
Blob file
static belongsTo = [User]
static hasMany = [user :User]
}
我可以使用addToUser()
方法在书中添加用户。
但是在用户中应用过滤器时,我仍处于创建条件中。
def query = Book.createCriteria();
def results = query.list () {
eq("user",userObject) // not working since user field is a list of users.
order("createdDateTime", "desc")
}
请帮我正确过滤。
答案 0 :(得分:1)
我不是100%确定您是如何尝试为您的域建模的,但也许您想要一本书只有一个用户?在这种情况下,您在Book上拥有belongsTo关系,例如
class Book {
String bookName
Timestamp createdDateTime
Blob file
static belongsTo = [user: User]
}
然后在User上有hasMany关系,例如
class User {
String name
static hasMany = [books: Book]
}
然后,您可以使用以下标准查找图书:
def user = User.findByName( 'bob' )
def results = Book.createCriteria().list () {
eq( "user", user )
order( "createdDateTime", "desc" )
}
答案 1 :(得分:1)
您需要首先以多对多关系加入用户表。标准应如下:
Book.withCriteria {
user {
eq("id", userObject.id)
}
order("createdDateTime", "desc")
}