gpt4 book ai didi

java - 将持久或分离的 hibernate 对象与其当前数据库状态进行比较的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-02 09:40:42 25 4
gpt4 key购买 nike

我正在使用 Hibernate 和 Spring。

我正在编写一个服务方法来保存一个对象(费用),该对象具有非常具体的业务规则,关于何时允许根据当前的数据库状态保存该对象。例如,如果 charge.status.equals(Status.CANCELED) 则不应更新。 (还有其他更具体的规则,但这应该是一个很好的示例)其他代码可能会加载已取消的费用并错误地将状态更改为已批准,然后调用 save(charge)。无论传入的费用是持久的还是分离的,save 方法都需要能够识别此错误。

是否有一种简单的方法可以将内存中的对象与数据库中对象的当前持久状态进行比较?

最佳答案

我认为这会起作用:


public void save(Charge charge) {
Session session = sessionFactory.getCurrentSession();
Charge copy = new Charge(charge);
session.refresh(charge);
...
//various business logic checks between copy and charge
...
session.saveOrUpdate(charge);
}

如果这有缺陷或有更好的方法,我当然会感激任何建议。

关于java - 将持久或分离的 hibernate 对象与其当前数据库状态进行比较的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5721190/

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