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);
}
}