我们有一个搜索例程,它使用条件来构建SQL查询(因为它的限制是动态添加的)。在特定情况下(非常复杂的情况),我们需要搜索表值函数。(我们的模型对象映射到函数)。
结果将是这样的:
SELECT count(*) FROM dbo.GetSubStaffsLetterInstances(@staffId) WHERE LetterNumber="1234";
问题是我不知道如何将@staffId传递给我的条件(我尝试添加 Eq 限制但没有成功,因为限制适用于属性)我知道我可以向 IQuery 添加一个参数,但我不知道如何使用 ICriteria 对象来做到这一点。
如果我
完全理解你的问题,你可以回到标准SQL:-
var sql = "SELECT count(*) FROM dbo.GetSubStaffsLetterInstances(:staffId)
WHERE LetterNumber=:letterNum";
var count = session.CreateSqlQuery(sql)
.setInt32("staffId", 12345)
.setString("letternum", "A1")
.UniqueResult<int>();
或尝试.UniqueResult<long>();
因为我不记得 HQL 返回哪一个