Mar*_*ada 5 java orm hibernate
我已经阅读了一段时间关于Hibernate,但我似乎无法理解一个关于Hibernate的概念Transaction
.
在我访问过的某些网站上,Select
语句处于交易模式.
public List<Book> readAll() {
Session session = HibernateUtil.getSessionFactory()
.getCurrentSession();
session.beginTransaction();
List<Book> booksList = session.createQuery("from Book").list();
session.getTransaction().commit();
return booksList;
}
Run Code Online (Sandbox Code Playgroud)
在某些网站上,它并不主张在Select
语句中使用事务:
public List<Book> readAll() {
Session session = HibernateUtil.getSessionFactory()
.getCurrentSession();
List<Book> booksList = session.createQuery("from Book").list();
return booksList;
}
Run Code Online (Sandbox Code Playgroud)
我在想我应该遵循哪一个.是否需要在Select
报表上进行交易?
这取决于用例.
在典型的CRUD样式Web应用程序中,常见的实体配置是使用版本控制和乐观锁定.(hibernate注释文档) 如果应用程序使用乐观锁定,脏读取可能不那么重要,并且不需要将select放入事务中.
当脏读不可接受时,则选择的事务是合适的.大多数情况下,在这种情况下,选择将与一些需要完全一致的数据修改一起完成.
归档时间: |
|
查看次数: |
7252 次 |
最近记录: |