java - 在事务之外保存实体
问题描述
我有以下代码试图将实体保存在事务之外:
Session session = HibernateUtil.buildSessionFactory().openSession();
Teacher t= new Teacher();
t.setName("jonathan");
session.save(t);
session.flush();
根据save()
if used outside the transaction的定义,我们需要flush()
将实体保存在db中。但是上面的代码并没有保存它。我必须创建一个transaction
和commit
它才能在数据库中添加一行。为什么会这样?
我在用HIbernate 4.3.6
编辑:我刚刚注意到 session.save() 返回 id 但仅在 transaction.commit() 之后添加了行。另一个问题没有回答我的问题。因为这基本上意味着 save() 为了添加db 中的行只能在事务中
解决方案
推荐阅读
- swiftui - 如何使用 SwiftUI 设置图像
- c++ - 有没有办法在它的孩子中修改嵌套类的实现?
- validation - 当用户选择有效选项时,需要清除 EnumDropDownListFor 的客户端验证
- windows - Windows - 本地远程桌面的替代方案
- r - 意外行为:从数据框中删除行转换为向量 R
- logging - Wireguard:如何记录网络活动?
- matlab - Matlab 运行时的文件树结构?
- typescript - 编译错误类型转换返回类型Promise
异步 - android - 我如何在 android 中访问 JSON 数据?
- python - 彭博 blpapi 安装