Nhibernate 聚结
是否可以将此sql语句转换为Nhibernate 聚结,nhibernate,Nhibernate,是否可以将此sql语句转换为CreateCriteria,第二个是NHibernate通过合并处理顺序 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
CreateCriteria
,第二个是NHibernate通过合并处理顺序
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)
我不知道CreateCriteria,但Hibernate/HQL仅在Where子句中支持COALESCE、IFNULL或ISNULL,具体取决于您的底层数据库
您可以用方言定义一个函数,它也可以在select子句中使用我还没有测试过这个
请参阅:没有内置支持。但是,您可以创建自己的Order类。
您可以创建一个接受任何sql字符串的类,也可以尝试创建一个CoalesceOrder类。在这种情况下,我们将始终将其设置为存储过程,然后使用session.getNameQuery()调用该过程。我们为什么不让事情变得容易些呢?