[英]hibernate session.save() inserts different values than are at object
I have little problem. 我没什么问题 When I try insert new value to database, function save() inserts me different values than are at object :(. What should I do? 当我尝试向数据库中插入新值时,函数save()会向我插入与对象:(。)不同的值。我该怎么办?
Here is my function 这是我的功能
public void updateListOfElements(List<Dokumenty> list) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction transaction = null;
try {
transaction = session.beginTransaction();
for (Dokumenty dokument : list) {
Dokumenty dokumentToUpdate =
(Dokumenty) session.get(Dokumenty.class, dokument.getId());
dokumentToUpdate.setAktywny('N');
session.update(dokumentToUpdate);
// id z dupy wpisuje
dokument.setId(10114);
session.save(dokument);
}
transaction.commit();
} catch (HibernateException e) {
if (transaction != null) {
transaction.rollback();
}
} finally {
session.close();
}
}
You should use saveOrUpdate
not save
您应该使用saveOrUpdate
而不是save
dokument.setId(10114);
session.saveOrUpdate(dokument);
When you call saveOrUpdate()
If the identifier exists, it will call update method else the save method will be called. 当您调用saveOrUpdate()
如果标识符存在,它将调用update方法,否则将调用save方法。
If you call save()
method stores an object into the database. 如果调用save()
方法,则将对象存储到数据库中。 That means it insert an entry. 这意味着它将插入一个条目。
Before proceed have a look : What are the differences between the different saving methods in Hibernate? 在继续之前,请看一下: Hibernate中不同的保存方法之间有什么区别?
My suggetion: Always use saveOrUpdate //if record exists update otherwise new
我的建议: Always use saveOrUpdate //if record exists update otherwise new
Use session.merge()
. 使用session.merge()
。 Becuase, NonUniqueObjectException may be thrown when using Session.saveOrUpdate() in Hibernate - See more at: http://www.stevideter.com/2008/12/07/saveorupdate-versus-merge-in-hibernate/#sthash.WJEbdSaG.dpuf 因为,在Hibernate中使用Session.saveOrUpdate()时可能会抛出NonUniqueObjectException-有关更多信息,请参见: http : //www.stevideter.com/2008/12/07/saveorupdate-versus-merge-in-hibernate/#sthash.WJEbdSaG .dpuf
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.