[英]Java Hibernate save an object and update a different object using the same session in the same transaction only update and not save
我想要做的是当客户订购产品时,订单将保存到数据库中并且该产品将被更新。
Session session = factory.openSession();
Transaction t = session.beginTransaction();
try {
session.update(product);
session.save(order);
t.commit();
}
catch (Exception e) {
t.rollback();
}
finally {
session.close();
}
产品和订单是 2 种不同的 object 类型。 运行此代码时我没有任何异常,但只有产品更新,订单没有保存。
对不起,我的英语不好。
您可能因为没有调用t.begin方法而忘记了开始您的事务。 此外,您的 try-catch 语句存在一些问题,因为 factory.openSession 和 session.beginTransaction 应该在 try 块内,因为两者都会引发异常。 试试下面的示例代码:
Session session = null;
Transaction t = null;
try {
session = factory.openSession();
t = session.beginTransaction();
t.begin()
session.update(product);
session.save(order);
t.commit();
}
catch (Exception e) {
if (t != null) {
t.rollback();
}
}
finally {
if (session != null) {
session.close();
}
}
通常我使用persist
将新条目保存到数据库中。
顺便说一句,我鼓励你使用try-with-resource
来避免在最后添加 finally 块
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.