mysql - HQL 当前日期
问题描述
我正在尝试使用currentdate()
比较两个日期的函数在 HQL 中创建查询。
List<Rel_Utenti_Commesse> commesseAttive = new ArrayList<Rel_Utenti_Commesse>();
commesseAttive = session.createQuery("from Rel_Utenti_Commesse where utenti = '" + utenteSessione + "' and data_fine_commessa > current_date() or data_fine_commessa is null").list();
for(int i = 0; i < commesseAttive.size(); i++)
System.out.println(commesseAttive.get(i).getCommessa().getNome_commessa());
return commesseAttive;
但是,尽管我在数据库(MySQL)中有一个带有 2019-02-01 的 data_fine_commessa 的实例,但他忽略了它。
为什么?
解决方案
您错过了 or 部分的大括号:
commesseAttive = session.createQuery("from Rel_Utenti_Commesse where utenti = '" + utenteSessione + "' and (data_fine_commessa > current_date() or data_fine_commessa is null)").list();
这就是为什么 first 被AND
评估,而不是OR
@TimBiegeleisen 建议使用参数化查询:
Query query = session.createQuery("from Rel_Utenti_Commesse where utenti = :utenteSessione and (data_fine_commessa > current_date() or data_fine_commessa is null)")
query.setParameter("utenteSessione", utenteSessione)
List result = query.list()
推荐阅读
- encryption - 从更长的密钥派生密钥
- css - WordPress将CSS存储在缓存文件中?
- python - 线性回归问题
- xamarin.android - 如何在 xamarin android 项目中处理多个应用程序类
- google-calendar-api - 跨日历集成(Google 日历和 Outlook 日历)
- wpf - 获得焦点时在 datagridCell 上选择 All
- android - 将照片缩略图添加到没有照片的现有 Android 联系人
- css - 对特定媒体查询应用 css 规则,并考虑所有其他媒体查询的剩余规则
- c++ - 如何将 -std=c++17 添加到我的 mingw32-make 中?
- java - 如何从Java应用程序在网站的文件选择器中加载文件