NHibernate COALESCE

时间:2009-05-27 12:59:04

标签: nhibernate

是否可以将此sql语句翻译为CreateCriteria,其次NHibernate是否与ORDER BY COALESCE进行交易?

SELECT obs1.OBSLOPNR, obs1.LOKALLOPNR, obs2.OBSLOPNR, obs2.LOKALLOPNR
FROM
   (SELECT * FROM OBS WHERE OBS.LOKALLOPNR = 9) AS obs1 
FULL OUTER JOIN
   (SELECT * FROM OBS WHERE OBS.LOKALLOPNR = 8) AS obs2 
ON obs1.ARTLOPNR = obs2.ARTLOPNR
ORDER BY COALESCE(obs1.OBSLOPNR, obs2.OBSLOPNR)

2 个答案:

答案 0 :(得分:0)

我不了解CreateCriteria,但Hibernate / HQL支持COALESCE,IFNULL或ISNULL,具体取决于您在Where Where子句中的基础数据库。

您可以在方言中定义一个函数,它也应该在select子句中起作用。 我没有测试过这个

请参阅:http://www.hibernate.org/hib_docs/v3/reference/en/html/queryhql.html

答案 1 :(得分:0)

没有内置支持。但是,您可以创建自己的Order类。 Here is a good example

您可以创建一个接受任何sql字符串的类,也可以尝试创建CoalesceOrder类。