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

时间:2011-04-07 22:10:23

标签: java hibernate

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

我在我的系统中使用以下代码,但如果表中有相同rUser的经销商,我想更新该行。我怎么能这样做?

public void saveDealer(Dealer dealer, String rUser) {

    dealer.setUsername(rUser);
    dealer.setAddedDate(new Date());
    sessionFactory.getCurrentSession().saveOrUpdate(dealer);
}

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

另一种方法是在saveOrUpdate

之前检查

答案 2 :(得分:0)

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

希望有所帮助。

答案 3 :(得分:0)

我的几乎所有实体都包含像Long id这样的Identity字段。所以,我的save()方法如下所示:

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