spring - 如何在 Spring Proxy 中的 Private 方法上创建 @Trasactional
问题描述
这是代码片段。
public class A{
public void m1(){
//Do some stuff
m2();
}
@Transactional
private m2(){
// Some DB operations
}
}
在上面的代码中,@Transactional不起作用。
有没有一种方法可以让我只在私有方法上创建@Transactional (而不是在公共方法上)?
有人可以帮忙吗。
解决方案
没有保留@Transactional
私有方法的目的,因为该方法最终在类本身中被调用。因此代理永远不会应用于该方法。
使用代理时,您应该仅将
@Transactional
注释应用于具有公共可见性的方法。如果您使用注解对受保护的、私有的或包可见的方法进行@Transactional
注解,则不会引发错误,但被注解的方法不会显示配置的事务设置。
推荐阅读
- xpath - Wiremock:如果存在 xmlns,则 xpath 不起作用
- javascript - 使用javascript从a中选择一行
我试图通过单击表中的一行从数据库中删除一行。然后通过从行中获取 ID 使用 ajax 请求删除该行。
我的html是:
<div> <table class="table table-striped" id="tabble"> <th>Id</th> <th>Name</th>
- python - 根据列表替换字符串中的子字符串
- c - 通过 printf 在 c 中打印负值
- javascript - 如何为从数据库中获取的每个用户做一个标记?
- python - dask 和 dask.distributed 之间的巨大内存使用差异
- php - 如何显示第一个表中的记录并匹配第二个表中的记录?
- azure-devops - 如何安装 Azure DevOps 自定义任务而不将其在线发布以供其他人查看?
- c++ - 为什么该代码不绘制精灵 C++ SFML
- bash - 为什么我的while循环跳过了我的文件的第一行