我正在尝试使用一些基本的日期/时间操作限制我的 NHibernate 查询。更具体地说,我想执行以下语句(伪SQL):
select * from article where created_on + lifespan >= sysdate
使用:
created_on
映射到DateTime
类型的属性。lifespan
映射到TimeSpan
类型的属性。sysdate
是当前日期/时间(数据库服务器或应用程序主机,我不在乎)使用 Criteria-API 或 HQL 是否有内置方法可以做到这一点?
return session
.CreateCriteria<Article>()
.Add( ? )
.List<Article>();
答案 0 :(得分:1)
由于查询是由服务器执行的,因此它需要支持您要执行的操作。
如果是,则需要继承相应的Dialect并在其构造函数中注册相应的函数。
答案 1 :(得分:1)
create view activearticle as
select * from article
where created_on + lifespan >= sysdate