Tôi đang sử dụng Nimble và Shiro cho các khuôn khổ bảo mật của mình và tôi vừa mới gặp phải lỗi GORM. Thật vậy:GORM createCriteria và danh sách không trả về cùng kết quả: tôi có thể làm gì?
User.createCriteria().list {
maxResults 10
}
lợi nhuận 10 người trong khi User.list(max: 10)
lợi nhuận 9 người đã!
Sau khi điều tra thêm, tôi phát hiện ra rằng createCriteria
lợi nhuận gấp đôi so với cùng sử dụng (admin) vì quản trị có 2 vai trò !!! (Tôi không nói đùa).
Dường như bất kỳ người dùng với hơn 1 vai trò sẽ được trả lại gấp đôi trong createCriteria
cuộc gọi và User.list
sẽ trở lại max-1
trường hợp (tức là 9 người dùng thay vì 10 users)
workaround Những gì tôi có thể sử dụng để có 10 người dùng duy nhất được trả về?
Điều này rất khó chịu vì tôi không có cách nào để sử dụng phân trang một cách chính xác.
lớp miền của tôi là:
class UserBase {
String username
static belongsTo = [Role, Group]
static hasMany = [roles: Role, groups: Group]
static fetchMode = [roles: 'eager', groups: 'eager']
static mapping = {
roles cache: true,
cascade: 'none',
cache usage: 'read-write', include: 'all'
}
}
class User extends UserBase {
static mapping = {cache: 'read-write'}
}
class Role {
static hasMany = [users: UserBase, groups: Group]
static belongsTo = [Group]
static mapping = { cache usage: 'read-write', include: 'all'
users cache: true
groups cache: true
}
}
Triển khai của bạn cuối cùng là gì? Bởi vì tôi có cùng một vấn đề. Cảm ơn rất nhiều –