如何使用 Guice 和 Jersey 在 GET 请求中配置只读事务?
我正在使用 Guice、Guice Persist、Hibernate 和 Jersey。除了用 @GET 注释的方法之外,我所有的资源方法都用 @Transactional 注释。这是配置每个请求的事务范围的正确方法吗?
I am using Guice, Guice Persist, Hibernate and Jersey. All my resource methods are annotated with @Transactional except for the methods that are annotated with @GET. Is this the correct way configure the transaction-per-request scope?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没有“正确”的方法;这取决于您想要实现的目标。回答您的问题涉及几个单独的问题,如下所述。
总之,只要您的控制器处于请求范围内,您的数据访问模式就很好。但是,如果创建对象图时涉及许多查询,则“GET”函数应该是事务性的。
There is no "correct" way; it depends on what you are trying to achieve. There is a few separate issues involved in answering your question, as discussed below.
In summary, your data access pattern is fine, as long as your controllers are request-scoped. However, your "GET" functions should be transactional if many queries will be involved in creating the object graph.