有没有办法运行这些查询,就好像我向他们添加了(NOLOCK)提示?Java Hibernate与nolock的HQL查询
10
A
回答
8
如果你真的需要这一点,那么你想要做的事,如:
session.connection().setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
这等同于NOLOCK。
在你这样做之前,如果你想做一个肮脏的阅读,真的仔细考虑。大多数时候,人们这样做是因为这是他们一直以来所做的,而不是因为这是正确的事情。特别是,这不适用于缓存。
实际上,this thread进入了一些问题。在决定之前仔细阅读。
5
在Hibernate的最新版本,你需要做的是这样:
Session session = (Session) em.getDelegate();
session.doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
connection.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
}
});
+0
我已经使用这种方法来设置某些查询的read_uncommitted事务隔离级别,但我确实知道连接数量比没有它的数量增加了多倍。在read_uncommitted事务之前,一个用户持有应用程序的Websphere服务器上的连接数量为4,之后变为80.这是否正常?或者我应该寻找别的什么地方找到这个问题? – CntkCtn 2017-05-16 09:03:28
2
可以做到“有(NOLOCK)”如果你去本地。这是极端的,但如果替代方案正在改变事务隔离级别,那么你可以这样做。
请注意,此示例适用于MSSQL。
String sqlQueryString = "SELECT * FROM my_classes_table WITH (nolock) WHERE columnName = :columnValue";
SQLQuery sqlQuery= session.createSQLQuery(sqlQueryString).addEntity(MyClass.class);
sqlQuery.setLong("columnValue", value);
List<MyClass> out = sqlQuery.list();
相关问题
- 1. Hibernate的HQL嵌套查询
- 2. Hibernate的HQL查询 - 复杂
- 3. 构建Hibernate HQL查询
- 4. Hibernate HQL查询空列
- 5. Hibernate HQL选择查询的问题
- 6. 简单的HQL查询,并在Hibernate中
- 7. Hibernate 3的HQL查询连接2台
- 8. Hibernate的HQL创建“任何”查询
- 9. Hibernate的HQL与接口
- 10. java hibernate:选择多态hql查询中的鉴别器列
- 11. EJB查询语言与HQL
- 12. 在Hibernate中使用HQL更新查询
- 13. 使用HQL/Hibernate嵌套查询
- 14. 静态Hibernate和干运行HQL查询
- 15. Hibernate hql - 帮助查询外键
- 16. 如何测试Hibernate HQL查询?
- 17. 如何将解码查询转换为Hibernate(HQL)中的查询?
- 18. Hibernate - HQL查询产生的SQL是否被hibernate系统缓存?
- 19. Hibernate的HQL删除与和
- 20. 嵌套查询与HQL或CriteriaBuilder查询
- 21. 与sum()函数返回空值使用Hibernate hql查询
- 22. HQL与子查询连接
- 23. HQL查询与where子句
- 24. Java Hibernate(JPA)查询
- 25. Hibernate java jpa查询
- 26. Hibernate查询语言(HQL) - 查询懒惰/无延迟加载
- 27. Hibernate从hql查询中创建多个查询
- 28. sql查询的HQl查询?
- 29. java,hibernate:映射属性与查询
- 30. Java的Hibernate查询,异常
谢谢,加里。 是的,我正在寻找脏读。我们的DBA在本项目区域推荐了所有“选择”的NOLOCK。问题在于,部分SQL处于休眠状态。 – Sarit 2010-08-17 13:09:53
在最新版本的Hibernate中,connection()似乎从API中删除。关于如何在没有连接对象的情况下实现类似效果的任何想法? – 2012-09-25 05:05:11
如果使用'@ Transactional'注释,它可以被指定为'isolation'属性。 – Tobb 2015-04-30 07:19:44