Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重写事务方法_Java_Hibernate_Service_Transactions_Annotations - Fatal编程技术网

Java 重写事务方法

Java 重写事务方法,java,hibernate,service,transactions,annotations,Java,Hibernate,Service,Transactions,Annotations,我在服务A中使用了带有@Transactional的方法M 我有服务B使用重写的方法M扩展了A 是否将重写方法M仍然是事务性的? 或者我应该在这里添加@Transactional?大多数时候,你可以在类级别上使用单个@Transactional。但有时您只需要自定义一个方法,以实现不同的行为。在这些情况下,使用相同的@Transactional注释标记所有其他方法仍然是多余的 Warp persist提供了一种工具,您可以在其中使用特定方法上的特定@transactional重写类的事务行为(如

我在服务A中使用了带有@Transactional的方法M

我有
服务B使用重写的方法M扩展了A

是否将重写方法M仍然是事务性的?
或者我应该在这里添加@Transactional

大多数时候,你可以在类级别上使用单个@Transactional。但有时您只需要自定义一个方法,以实现不同的行为。在这些情况下,使用相同的@Transactional注释标记所有其他方法仍然是多余的

Warp persist提供了一种工具,您可以在其中使用特定方法上的特定@transactional重写类的事务行为(如果需要):

@Transactional
public class MyRepository {
public void save(Thing t) { .. }

@Transactional(rollbackOn = NoSuchEntityException.class) //optional
public void remove(Thing t) { .. }   

public Thing fetch(Long id) { .. }
}
在上面的示例中,save()和fetch()具有在类级别指定的标准事务行为。但是remove()有一个特定的rollbackOn子句,它被用来代替


请记住,不能拦截私有方法进行事务包装。这是因为不能重写子类中的私有方法。如果遇到任何这样的方法,它们都将被默默地忽略。

您实际要问的是:该方法上的@Transactional注释是继承的吗

简短回答:不是。方法上的注释永远不会被继承

长回答:看