gpt4 book ai didi

java - 如何避免 Hibernate ValidationException 上的自动实体更新

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:58:23 25 4
gpt4 key购买 nike

我有一个 spring 方法:我在构造对象之后验证实体,该对象之前是从数据库中获取的。

@Transactional(rollbackFor={ValidationException.class})
public Object approve(Command command) throws ValidationException {
Object obj = merger.mergeWithExistingobject(command); // where I am fetching object from DB with old values and construct the new object

validatorService.validate( obj ); // which throws ValidationException

return saveObject(obj);
}

但不幸的是,即使在抛出 ValidationException 之后。这些值仍然保留在数据库中。我怎样才能避免这种情况。

最佳答案

您可以在 ValidationException 上驱逐实体:

try {
validatorService.validate( obj );
} catch (ValidationException e) {
entityManager.detach(obj);
//Or with Hibernate API
//session.evict(obj);
throw e;
}

关于java - 如何避免 Hibernate ValidationException 上的自动实体更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31583456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com