是否有可能在不实际运行的情况下获取 nhibernate 在您的代码中创建的 sql?
我有一个通过标准 API 构建的复杂标准对象。这个标准对象构成了各种选择语句的基础。然后,我可以以此为基础,在整个应用程序的不同场景中添加我需要的其他标准。
我现在需要在我的一个 select 语句中添加一个 having 子句,显然这不是使用标准 api 的选项。我可以创建我需要的投影,如果我查看生成的 sql,我需要添加到现有标准底部的是......
HAVING SUM(J.HoursAssigned) <> sum(JTB.HourQty)
如此接近非常令人沮丧,但我似乎无法在生成的 SQL 底部添加一行标记。
我在想,如果我可以提取生成的 SQL,我可以在我需要的 having 子句上添加标签,然后我可以通过 Nhibernate SQLQueryCriteria 提交整个事情。
我知道这并不理想,但这对我来说似乎比使用 HQL 或 SQL 编写的一个查询更好,而其余的查询共享一个共同的标准库。
这是可能的吗?这是个好主意吗?任何替代方案也将受到欢迎。