【发布时间】:2018-07-16 04:52:42
【问题描述】:
我有书域
package bookfinal
class Book {
String name
static constraints = {
}
}
Book Controller如下
package bookfinal
class BookController {
def bookService
def destroy(Long id){
bookService.destroy(id)
redirect(action:'index')
}
def index() {
[books: Book.findAll()]
}
def create(){
}
def save(){
def book = new Book(params)
book.save()
redirect(action:'show', id:book.id)
}
def edit(Long id){
[book: Book.get(id)]
}
def update(Long id){
bookService.update(id, params)
redirect(action:'index')
}
def show(Long id){
[book: Book.get(id)]
}
}
服务如下
package bookfinal
import grails.gorm.transactions.Transactional
@Transactional
class BookService {
def destroy(Long id) {
def b = Book.get(id)
b.delete()
}
def update(Long id, params){
def book = Book.get(id)
book.properties = params
book.save()
}
}
显示页面如下
<h1> ${book.name} </h1>
<g:link action="edit" id="${book.id}">Edit</g:link>
<g:link action="destroy" id="${book.id}">Delete</g:link>
<g:link action="index">Back</g:link>
现在,当我单击删除时,它会重定向到索引,但记录不会被删除。为什么即使在服务中也无法删除?我正在使用 Grails 3.3.2 版本。当我执行 delete(flush:true) 时,它可以工作,但我希望 delete() 可以在服务中工作,因为它是事务性的。我错过了什么吗?我很感激任何帮助。谢谢!
【问题讨论】: