我有一個作者和書籍之間一對多的關係,一個作家有很多書..如何防止Grails在刪除父項時不刪除子項?
我有域類這樣
Author.groovy
class Author {
String authorName;
String authorAddress;
String authorCNIC;
static hasMany = [books:Book]
static constraints = {
books(nullable: true)
}
}
Book.groovy
class Book {
String bookName;
String Isbn;
static belongsTo = [author:Author]
static constraints = {
author(nullable: true)
}
}
現在當我叫這個功能
def deleteauthor()
{
def id=params.id
Author author = Author.findById(id);
author.delete(flush: true)
render "Author Deleted"
}
它刪除作者及其所有子書..我不希望這種行爲,我希望它不能刪除作者和書籍和顯示消息不能刪除作者,首先刪除書籍...請告訴我如何做這個 ?
找到作者(你這樣做),看他/她的書數,如果> 0,不要刪除,但發出錯誤信息。 – railsdog
如何查看作者的書數? – Ahmad
'Author author = Author.get(id)if(author.books?.size()> 0){render「failed」return} author.delete(flush:true) render「作者已刪除」但也許你需要看'cascade' http://docs.grails.org/latest/ref/Database%20Mapping/cascade.html – Vahid