0

我们有一个搜索例程,它使用标准来构建 SQL 查询(因为它的限制是动态添加的)。在特定情况下(非常复杂的情况),我们需要搜索表值函数。(我们的模型对象映射到函数)。

结果将是这样的:

SELECT count(*) FROM dbo.GetSubStaffsLetterInstances(@staffId) WHERE LetterNumber="1234";

问题是我不知道如何将@staffId 传递给我的条件(我尝试添加 Eq 限制但没有成功,因为限制正在对属性起作用)我知道我可以向 IQuery 添加参数,但我不知道如何可以使用 ICriteria 对象来完成。

4

1 回答 1

1

如果我完全理解您的问题,您可以求助于标准 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

于 2012-07-04T21:10:08.267 回答