gpt4 book ai didi

mysql - NHibernate 和 MySql 关键字

转载 作者:行者123 更新时间:2023-11-29 15:03:27 25 4
gpt4 key购买 nike

为什么 Nibernate HQL 无法处理以下查询:

from Deal D where (D.ApprovalDate + INTERVAL 1 Year) < current_timestamp() <  (D.RenewalDate + INTERVAL -1 Year) 

知道 INTERVAL 和 YEAR 是 MySQL 中的关键字,所以这是一种在 Hql 中混合 Sql (除非 Hql 可以处理这样的日期函数,我不知道)。方言是MySQLDialect

执行此查询完全有效

  SELECT '2005-01-01' + INTERVAL 1 Year;

最佳答案

您可以使用 Criteria Query 直接在查询中传递 Sql。像这样的事情

Session.CreateCriteria<Deal>()
.Add(Restrictions.Sql(D.ApprovalDate + " INTERVAL 1 Year < current_timestamp() < " + D.RenewalDate + " INTERVAL -1 Year")

Restrictions.Sql 会将您提供的任何内容作为 sql 直接传递到数据库。

关于mysql - NHibernate 和 MySql 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2660035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com