Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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 Spring@Transactional最佳实践_Java_Spring_Spring Boot_Spring Transactions - Fatal编程技术网

Java Spring@Transactional最佳实践

Java Spring@Transactional最佳实践,java,spring,spring-boot,spring-transactions,Java,Spring,Spring Boot,Spring Transactions,我想知道@Transactional的实现是否正确 当我第一次了解@Transactional时,我在我的存储库类中使用了它,在一次调用多个mongodb的每个方法之上。 但是,我停止使用这种方法,将@Transactional放在我的服务类之上,这样我的服务的每个方法都在一个事务中运行。例如,从数据库中查找对象,验证用户输入,然后修改对象并将其保存在数据库中。。知道有时候我需要抛出一个异常,比如找不到,或者错误的请求 我的实现是否正确?是的,当您希望方法中的所有内容都发生在一个事务中时,通常使

我想知道@Transactional的实现是否正确

当我第一次了解@Transactional时,我在我的存储库类中使用了它,在一次调用多个mongodb的每个方法之上。 但是,我停止使用这种方法,将@Transactional放在我的服务类之上,这样我的服务的每个方法都在一个事务中运行。例如,从数据库中查找对象,验证用户输入,然后修改对象并将其保存在数据库中。。知道有时候我需要抛出一个异常,比如找不到,或者错误的请求


我的实现是否正确?

是的,当您希望方法中的所有内容都发生在一个事务中时,通常使用@Transactional注释服务方法。

您的方法不会导致任何问题,当我们希望方法中的语句发生在一个事务中时,我们使用@Transactional操作。通常我们在服务类中使用它,但即使在其他地方使用它也不会产生任何问题

如果您需要了解其工作原理的详细信息,可以查看


这是一个基于意见的问题,很可能会被关闭。是的,没有最佳实践。您使用@Transactional,您需要将事务放在何处。此外,@Transactional有各种选项,因此它取决于您需要的用例。@Thomasand如果这不是一个基于意见的问题,我想知道我的实现是否正确,或者它是否可能导致问题=您应该努力使事务尽可能短,同时仍然包含需要更改的所有内容。“更改”是一个关键词,关注更改数据的操作。例如,如果需要从外部源获取数据,请尝试将其保留在事务之外。