Hibernate - 将操作置于事务下
Hibernate - Putting operation under Transaction
我是 Hibernate 的新手,我仍然不明白对象是如何工作的 import org.hibernate.Transaction;
。
现在我正在为一个 Person
实体编写 CRUD 操作,我根据我在网上找到的内容编写了这个实现:
public void save(Person p) {
Session session = this.sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.persist(p);
tx.commit();
session.close();
}
我的问题是,为什么要使用 Transaction 对象?如果我不使用它会发生什么?最后,是否需要在每个 CRUD 操作中使用?我注意到在读取操作中(所以当我们不在数据库中写入并且我们只请求 Person 对象列表时)开发人员不会将代码置于事务下。
为什么要使用交易对象?
在数据库管理系统中,一个事务代表一个工作单元,它们中的每一个都需要相互独立,以便在发生任何类型的故障时系统可以恢复并且已经存在的数据是没有丢失。
事务对象帮你实现this.Data只有当你提交事务时才持久化,万一提交前发生任何失败,所有的改变都会被回滚。
我应该在每个 crud 操作中使用它吗?
通常对于读取操作,您不需要事务对象,但这又是有争议的,请参阅 this 以获取有关只读操作中事务的更多信息。但是对于创建、更新和删除操作,您应该始终使用事务。
我是 Hibernate 的新手,我仍然不明白对象是如何工作的 import org.hibernate.Transaction;
。
现在我正在为一个 Person
实体编写 CRUD 操作,我根据我在网上找到的内容编写了这个实现:
public void save(Person p) {
Session session = this.sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.persist(p);
tx.commit();
session.close();
}
我的问题是,为什么要使用 Transaction 对象?如果我不使用它会发生什么?最后,是否需要在每个 CRUD 操作中使用?我注意到在读取操作中(所以当我们不在数据库中写入并且我们只请求 Person 对象列表时)开发人员不会将代码置于事务下。
为什么要使用交易对象?
在数据库管理系统中,一个事务代表一个工作单元,它们中的每一个都需要相互独立,以便在发生任何类型的故障时系统可以恢复并且已经存在的数据是没有丢失。 事务对象帮你实现this.Data只有当你提交事务时才持久化,万一提交前发生任何失败,所有的改变都会被回滚。
我应该在每个 crud 操作中使用它吗?
通常对于读取操作,您不需要事务对象,但这又是有争议的,请参阅 this 以获取有关只读操作中事务的更多信息。但是对于创建、更新和删除操作,您应该始终使用事务。