“?”附近的语法不正确: Nhibernate 生成的查询

2023-12-02

我在 Nhbernate 中使用位置参数时遇到问题。

Criteria GroupProperty 正在发出带有命名变量和位置变量的 SQL。

这个说法:

session.CreateCriteria(typeof(MatchStageFrom))
                .SetProjection(Projections.GroupProperty(
                    Projections.SqlFunction("substring", NHibernateUtil.String, Projections.Property("LastName"), Projections.Constant(0), Projections.Constant(1))
                    )
                );

正在生成这个 SQL:

SELECT substring(this_.LAST_NAME, @p0, @p1) as y0_ FROM MATCH_STAGING_FROM this_ GROUP BY substring(this_.LAST_NAME, ?, ?)

这会导致 SQL 出错:

Incorrect syntax near '?'.

could not execute query
[ SELECT substring(this_.LAST_NAME, @p0, @p1) as y0_ FROM MATCH_STAGING_FROM this_ GROUP BY substring(this_.LAST_NAME, ?, ?) ]
Positional parameters: #0>0 #1>1 #2>0 #3>1
[SQL: SELECT substring(this_.LAST_NAME, @p0, @p1) as y0_ FROM MATCH_STAGING_FROM this_ GROUP BY substring(this_.LAST_NAME, ?, ?)]

我能做什么来修复它?


它看起来像是 NHibernate 中的一个错误,但如果您只想要这些结果,您可以通过使用 Projections.Distinct 而不是 Projections.GroupProperty 获得相同的结果,即:

session.CreateCriteria(typeof(MatchStageFrom))
            .SetProjection(Projections.Distinct(
                Projections.SqlFunction("substring", NHibernateUtil.String, 
                    Projections.Property("LastName"), 
                    Projections.Constant(0), 
                    Projections.Constant(1))
                )
            );

或者,如果您选择的不仅仅是名称的第一个字符,那么您可能可以使用子选择来使其工作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“?”附近的语法不正确: Nhibernate 生成的查询 的相关文章

随机推荐

  • 如何在asp.net中读取excel文件

    我正在使用 Epplus 库来从 Excel 文件上传数据 我使用的代码非常适合具有标准形式的 Excel 文件 即 如果第一行是列 其余所有数据对应于列 但现在我是定期获取具有不同结构的 excel 文件 我无法阅读 excel文件如下图
  • g++ 如何使用给定的代码不报告错误?

    这是我的回答的延续为什么 elapsedtime 的输出为 1 我能够使用 g 4 7 3 成功编译和构建以下程序 include
  • (节点:3341)弃用警告:猫鼬:妥协

    我试图用我的自定义方法在猫鼬的顶部开发一个类 所以我用我自己的类扩展了猫鼬 但是当我调用创建一个新的汽车方法时 它可以工作 但是它的条带和错误 在这里我让你看看我想做什么 我收到此警告 node 3341 DeprecationWarnin
  • 将 String 转换为 Int 检查是否溢出

    当我尝试将一个很长的整数转换为Int 令我惊讶的是没有抛出错误 Prelude gt read 123456789012345678901234567890 Int 4362896299872285998 readMaybe from Te
  • Intel 处理器的虚拟操作处理

    诚然 我有一个有点愚蠢的问题 基本上 我想知道是否 英特尔处理器提供了一些特殊的机制来有效地 执行一系列虚拟指令 即 NOP 指令 例如 我可以想象那里 可能是某种识别 NOPS 并丢弃它们的预取机制 并尝试获取一些有用的指令 或者这些 N
  • Android - 删除 Google 地图片段 onPause 并重新添加 onResume

    我需要删除 Activity onPause 事件上的 Google 地图片段并将其添加回 onResume 事件 我怎样才能做到这一点
  • 如何使用对讲辅助功能 android 禁用视图中的“双击”消息?

    当视图有事件时 单击并启用对讲 我需要在视图中禁用音频 双击 我在 Android 开发中使用辅助功能 请问我该怎么做 如果您检查谷歌对讲源代码this线和here 字符串资源 双击 已被使用here and here 所以 你应该删除Ac
  • 椭圆的标准形式

    我得到椭圆作为拟合数据集的水平曲线 选择特定椭圆后 我想将其报告为中心点 半长轴和短轴长度以及旋转角度 换句话说 我想将我的椭圆方程转换为 使用mathematica Ax 2 By 2 Cx Dy Exy F 0 更标准的形式 xCos
  • IdentityServer4 AddSignerCredentials RSA 示例

    准备将 IdentityServer4 设置从开发版移至测试版 我需要从 AddDeveloperCredentials 迁移 AddSignerCredentials 部分 我可以生成私有和公共 RSASecurityKey 但我不清楚将
  • 非法参数:未定义、字符串

    注册用户时出现此错误 节点 13225 UnhandledPromiseRejectionWarning 错误 非法 参数 未定义 字符串 在 Object bcrypt hashSync home admin Desktop projec
  • Scala 编译 OptionBuilder 时出错

    我正在使用 Apache commons cli 1 2 进行命令行解析 我的代码中有以下内容 import org apache commons cli OptionBuilder OptionBuilder withLongOpt db
  • 为什么 ghci 找不到我尝试编译的 hs 文件?

    我是第一次学习 Haskell 我不明白为什么 ghci 找不到我正在尝试编译的文件 特别是因为我保存了文件 这是我的文件 import System IO trueAndFalse True False 现在这就是我在编译器中运行的内容
  • 防止双击按钮

    我一直遇到用户双击网络应用程序上的操作按钮的问题 这意味着重复的记录被添加到我的数据库中 有时用户会被收取两次费用 因为该操作运行了两次 在 ASP NET 中防止双击的最佳方法是什么 我发现您在面对未启用 JavaScript 的用户时对
  • 如何在 Pyqt5 setcentralWidget 中取回我的主窗口? [复制]

    这个问题在这里已经有答案了 如何取回我的主窗口 从我的主窗口 如果我按 打开左边的盒子 按钮或 打开右边的盒子 按钮 它起作用了 同时 如果我按下 Back 从左框按钮 什么也不会发生 如何获取主窗口 简单来说 我想知道如何设置布局和删除布
  • Room 为离线应用程序创建备份的最佳方法?

    所以我可以说正在使用非常复杂的数据库many to many数据库设计与foreign keys并连接表 它是Room数据库 我想为其创建备份系统 因为它是离线应用程序 我需要导出数据库并将其存储到谷歌驱动器的应用程序文件夹中 最近几天我读
  • 搜索按钮上的进度条

    我有这个 C 代码来显示进度条 public partial class FormPesquisaFotos Form public FormPesquisaFotos InitializeComponent private void Fo
  • switch 语句的逻辑部分或 case 部分如何?

    如果您有一个 switch 语句并希望在值为一个值时运行某些代码or另一个你怎么做 以下代码始终进入默认情况 include
  • Java Paths.get .... readAllBytes(path)) 不适用于相对路径

    我是 Java 新手 正在尝试构建 FX 应用程序 我的功能之一旨在用其他字符串替换某些字符串 只要我定义目标文件的绝对路径 该脚本就可以正常工作 但当我使用相对路径时 该脚本就会中断 问题出在 readAllBytes 方法中 该方法仅适
  • JPA - 可以在不提供可选参数的情况下调用存储过程吗?

    我正在调用带有许多可选参数的第三方存储过程 它位于 MS SQL Server 2008 R2 中 如下所示 procedure dbo pTest ReportDate varbinary max out Optional1 varcha
  • “?”附近的语法不正确: Nhibernate 生成的查询

    我在 Nhbernate 中使用位置参数时遇到问题 Criteria GroupProperty 正在发出带有命名变量和位置变量的 SQL 这个说法 session CreateCriteria typeof MatchStageFrom