如何使用catched异常回滚事务?

问题描述 投票:0回答:1

我有一个Rest API,我希望捕获所有异常,以便在抛出某些错误时为客户端发送自定义消息。

我使用try {...} catch(Exception e){...}捕获了异常,但是,在这些模式下,回滚不会执行并且数据会保持不变。

@POST
@Transactional
public Response add(Foo foo) {
    try {
        Foo add = this.service.add(foo);

        return Response.status(CREATED)
                .entity(add)
                .build();
    } catch (Exception e) {
        return Response.status(BAD_REQUEST)
                .entity("Contact the support! Error: " + e.getMessage())
                .build();
    }
}

我想回滚事务,因为数据不正确。

java jpa jta
1个回答
0
投票

当你使用@Transactional它已经被照顾。您不必自己进行回滚(这有点像try-with-resources)。当你在Transactionfinally子句中明确使用try时,你必须回滚事务。

© www.soinside.com 2019 - 2024. All rights reserved.