我已经看到这个机会至少被报告了六次,而且回复的数量也差不多。
我的问题是,我已经定义了一个 MySQL 数据库函数,我们将其称为“my_func(int val) 返回 int”,如果我直接在数据库上进行测试,它就可以正常工作。
我还让它通过我的存储库实现直接使用 SQL 传递,这没关系,但我宁愿通过 Hql 路由它,出于某种可怕的原因......
所以......我有一个 MySQL5Dialect 设置来注册函数,我在解析预期的约定时遇到了一些困难。
我的理解是我需要在函数名前加上“dbo”。在功能注册期间的某个时候?
像这样的东西,
//...
RegisterFunction("my_func", new SQLFunctionTemplate(NHibernateUtil.Int32, "my_func(?1)"));
//...
然后通过我的存储库,
var value = repository.FindByHQL<int>("select my_func(2)").Single();
FindByHQL 返回 IList。
任何想法为什么这不起作用。
我正在运行最新的 WAMP(我认为是 2.1e)。
足够的信息?让我知道我是否可以提供任何进一步的细节。
谢谢,
迈克尔