首先通过主键load一个对象,然后通过save保存这个对象,不过load里面的key可能在数据库里找不到,所以会抛出异常:no rows with given indentifier exists。想要达到的目的是,如果没有在数据库中找到数据则新增该条数据,请问有啥办法可以解决?谢谢!已经知道的一些事情:load是得到一个对象,如果数据库里不存在则返回一个不可恢复的异常,网上说可以用get试试。
可以先根据条件查得数据,使用session.createQuery("from TabObject as obj where obj.Object=aa"); 把值赋给TabObject,主要是Id,因为session.Update(TabObject);是通过条件id去更改的 然后在使用session.Update(TabObject);
把值赋给TabObject,主要是Id,因为session.Update(TabObject);是通过条件id去更改的
然后在使用session.Update(TabObject);
有的时候,特别是分布式系统集成的时候,你并不知道对方是不是有该条记录。
所以才会发生我上面所说的问题。后来我还自己试了,就是用get方法可以成功。虽然会报个错误,但是实际数据已经可以保存到数据库中。谢谢各位!