Hibernate-Spring如何将保存转换为更新或保存?
我在我的系统中使用以下代码,但如果表中有相同rUser的经销商,我想更新该行。我怎么能这样做?
public void saveDealer(Dealer dealer, String rUser) {
dealer.setUsername(rUser);
dealer.setAddedDate(new Date());
sessionFactory.getCurrentSession().saveOrUpdate(dealer);
}
答案 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);
}
}