gpt4 book ai didi

grails - Grails-@Transactional注释,用于生成简单的Controller

转载 作者:行者123 更新时间:2023-12-02 14:16:37 25 4
gpt4 key购买 nike

Grails newb在这里。我正在使用GGTS为简单的User模型(字符串用户,传递的字符串)生成 Controller

在查看GGTS生成的代码时,我注意到某些 Action (例如delete(),save()和update())具有@Transactional批注。

我的问题是,为什么在 Controller 中使用@Transactional,为什么在服务中不使用@Transactional?

纽伯在grails

最佳答案

总而言之,完成所有与数据库相关的工作和数据库事务的正确方法是在服务类中进行,而不是在 Controller 中进行。因此,默认情况下, Controller 没有权限进行事务处理,因此我们使用@Transactional批注。在服务中,默认情况下允许交易。

如果您使用执行某种数据库事务的服务方法,则需要通过@Transactional注释使 Controller 操作具有事务性。虽然无需在服务方法中提及它。

反之,如果您不使 Controller 具有事务性,则需要在服务类中提及它。

最佳做法是不使用自动生成的代码,因为对于初学者而言,它的维护性较差。官方文档将是您的最佳帮助,而在创建 Controller 时,您将找不到任何事务注释,而在创建服务类时,您将在类级别看到事务注释。

附言-“创建”类不等于“生成”。

关于grails - Grails-@Transactional注释,用于生成简单的Controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25173801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com