我有一个作者和书籍之间一对多的关系,一个作家有很多书..如何防止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