Hibernate-Spring如何将我的保存转换为更新或保存



Hibernate-Spring如何将我的保存转换为更新或保存?

我在系统中使用以下代码,但如果表中有一个具有相同用户的经销商,我想更新该行。我该怎么做呢?

public void saveDealer(Dealer dealer, String rUser) {
    dealer.setUsername(rUser);
    dealer.setAddedDate(new Date());
    sessionFactory.getCurrentSession().saveOrUpdate(dealer);
}

当您使用saveOrUpdate如果具有特定ID的数据不存在,hibernate将保存数据;如果具有特定ID的数据存在,hibernate将更新数据

您可以查看http://docs.jboss.org/hibernate/core/3.2/api/org/hibernate/engine/Cascade.html

另一种方法是在saveOrUpdate

之前检查

您必须先检查现有记录。Hibernate无法自动找出某个特定用户的经销商记录是否存在,并做出保存或更新的决定。我希望软件能思考:-)

希望对你有帮助。

几乎我所有的实体都包含身份字段,如长id。因此,我的save()方法是这样的:

void save(EntityWithId entity) {
    if (entity == null)
        return;
    if (entity.getId() == null) {
        session.persist(entity);
    } else {
        session.merge(entity);
    }
}

最新更新