【发布时间】:2019-09-05 06:49:20
【问题描述】:
我现在遇到了这个问题。使用休眠merge(Object o) 方法,它似乎不起作用,但奇怪的是在我的其他代码上它起作用了。这是我的代码的样子:
public Player addOrUpdate(Player player){
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = null;
try{
tx = session.beginTransaction();
if(player.getId() == null){
id = (Integer) session.save(player);
}else{
session.merge(player);
id = player.getId();
}
tx.commit();
}//catch and finally
}
在我的主课上,我正在尝试这样做:
PlayerDao pDao = new PlayerDao();
Player p = new Player();
p.setId(1);
p.setStatus("Hello");
pDao.addOrUpdate(p);
当我查看我的数据库时,我的数据没有任何变化。从我的其他代码(使用其他类)中,我只是做了同样的事情并且我的数据已成功更新。
【问题讨论】:
-
其他代码是什么?
-
我的其他持久类。比如,
Address等。 -
持久化场景有效吗?
-
坚持并且 saveOrUpdate 不起作用。我无法检测到错误在哪里。
标签: java hibernate session jpa merge