我正忙着为两张桌子创建ICriteria。 我试图模仿的SQL是下面的。 反正有没有这样做? 我一直在尝试CreateAlias,Subqueries和其他一些东西但是我总是遇到错误。 我曾尝试在nhusers Google小组上发帖,但没有得到太多帮助。 谢谢。
SELECT *
FROM Echo_File_status efs, Data_DELETION_PARAMETER ddp
WHERE
efs.EFS_PRODUCT_CODE = DDP.DDP_PRODUCT_CODE(+)
AND
DDP.DDP_PROCESS_TYPE = 'D'
AND
( ( trunc(nvl(efs.efs_file_create_date, sysdate)) > sysdate - dp.DDP_DAYS_ON_LINE ) or
( efs.efs_status_code != 'ACKED' ) )
ORDER BY efs.efs_product_code, decode(efs.efs_status_code, 'READY', 1, 'TRANS', 2 , 'FAERR', 3, 'FCERR', 4, 'PRERR', 5, 'TRERR', 6, 'PREP', 7, 'PRCOM', 8, 'FCREA', 9 , 'TRCOM', 10, 'ACKED', 11, 1),
efs.efs_file_create_date DESC
答案 0 :(得分:1)
为什么使用icriteria而Hql很容易使用?加入该代码属性上的对象。
答案 1 :(得分:0)
我个人对这类问题的看法是,你应该继续在纯SQL中编写类似的表达式,因为使用NHibernate标准API读取和维护只会更糟。
只要您对查询有测试覆盖率,就可以安全地隐藏该实现细节。