Grails 你能告诉我如何保存我的域类吗
我还在学习圣杯。我正在一点一点地建立我的启动项目。请原谅我问了这么多新手问题 命令generateall创建MyBook服务类。Grails生成BookService。看起来像这样Grails 你能告诉我如何保存我的域类吗,grails,Grails,我还在学习圣杯。我正在一点一点地建立我的启动项目。请原谅我问了这么多新手问题 命令generateall创建MyBook服务类。Grails生成BookService。看起来像这样 import grails.gorm.services.Service @Service(Book) interface BookService { Book get(Serializable id) List<Book> list(Map args) Long count()
import grails.gorm.services.Service
@Service(Book)
interface BookService {
Book get(Serializable id)
List<Book> list(Map args)
Long count()
void delete(Serializable id)
Book save(Book book)
}
到目前为止还不错。我可以省钱,没有任何问题。但是,我在保存操作中将bookService.save(book)替换为简单的book.save()。现在,它无法将我的书保存到数据库中。我还尝试了book.save(flush:true)。这也救不了这本书
你知道为什么book.save()(带或不带flush:true)不会保存,而bookService.save(book)会保存吗
我不知道接口BookService在Grails中是什么意思。
你能教我在哪里可以为图书服务添加更多的方法吗
非常感谢。不允许保存外部事务。控制器不是事务性的。如果要在控制器中保存,请在事务中移动保存逻辑,如-
Book.withTransaction { status ->
...
}
最佳实践是将服务
层用于所有与数据库相关的活动
有关接口服务的信息,请查看
哇!太好了!我永远也找不到这些页面,因为我不知道Grails术语。谢谢我可以再问你一个问题吗?因此,generate all生成一个数据访问服务。它与Grails文档中的此服务不同。对的GORM在编译时为您将数据访问服务转换为此服务。
Book.withTransaction { status ->
...
}