gpt4 book ai didi

c# - hibernate查询使用nolock时出现识别错误

转载 作者:太空宇宙 更新时间:2023-11-03 12:05:45 24 4
gpt4 key购买 nike

我有一个简单的休眠查询,在查询中使用了 nolock。我收到错误 - 发生识别错误并且休眠错误抛出异常:NHibernate.dll 中的“NHibernate.Hql.Ast.ANTLR.QuerySyntaxException”。它没有锁就可以工作。我不想用

<property name="connection.isolation">ReadUncommitted</property>

因为我必须只对特定表应用 nolock。

下面是hql查询-

select d from Users d with (nolock) where d.Userid = 2 

我错过了什么吗?

最佳答案

HQL 不支持直接with (nolock) .但是我们可以使用原生 SQL 查询。

因此,例如,而不是像这样(获取用户列表):

var hql    = "select d from Users d with (nolock) where d.Userid = 2";
var query = session.CreateQuery(sql);
var result = query.List<User>();

我们需要使用原始的 sql API

var sql    = "select d.* from schema.UserTable d with (nolock) where d.user_id = 2 ";
var query = session.CreateSQLQuery(sql);
var result = query
.AddEntity(typeof(User))
.List<User>();

以防万一,我们知道通过 ID 只会返回一个用户。我们可以使用 UniqueResult<>而不是 List

关于c# - hibernate查询使用nolock时出现识别错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55100285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com