【发布时间】:2015-05-23 22:05:04
【问题描述】:
假设我们有标准的 Book 域对象和 bookCategory 对象。在我的控制器中,我想将书籍列表的子集返回到视图。使用查找查询无法实现该子集。当我尝试归档返回对象时,它会从数据库中删除关系!
我试过了:
class BookCategory{
String name
static hasMany = [books:Book]
}
class Book{
String title
}
def myController() {
def categories
categories = BookCategory.list()
def user = getCurrentUser()
categories.each { category ->
category.books.removeAll { book ->
!isBookBannedForThisUser(book.title, user)
}
[bookCategories: categories]
}
}
问题在于它会从数据库中所有用户的类别中永久删除这些书籍!!!
我尝试将方法放在服务中并使用只读事务,但这没有帮助。
我假设即使我将所有类别和书籍复制到新列表中,它们仍然会更新数据库,因为它们仍然具有书籍 ID(我需要)
当你不说 save() 时保存到数据库是非常危险的。有没有办法完全禁用此功能?
【问题讨论】:
标签: grails grails-orm