将查询转换为HQL

用户名

我是HQL的新手,我需要进行以下MSSQLServer查询,该查询可在所有数据库中执行每月和每年的销售额,

select count(sales) as monthsales from salesdairy where propertytype in ('item1') and MONTH(time) = MONTH(getdate())
select count(sales) as yearsales from salesdairy where propertytype in ('item1') and YEAR(time) = YEAR(getdate())

我对功能感到震惊,MONTH(time) = MONTH(getdate()),YEAR(time) = YEAR(getdate())HQL中是否有任何等效功能如果有人可以给我HQL同等的水平,我将不胜感激。

乔·塔拉斯

在HQL中,您有实体(类对象)而不是表。我想您的表salesdiary成为SalesDiary实体。

第一个查询:

select count(S.id)
from SalesDiary S
where S.propertytype in ('item1')
and MONTH(S.time) = MONTH(current_date)

第二个查询:

select count(S.id)
from SalesDiary S
where S.propertytype in ('item1')
and YEAR(S.time) = YEAR(current_date())

函数MONTH获取输入日期的月份数,年份函数获取输入日期的年份数。

current_date()等效于SQL Server GETDATE()。

注释后编辑很奇怪,Hibernate必须使用下划线DBMS的正确功能进行转换。

如果可以使用参数,请尝试以下操作:

select count(S.id)
from SalesDiary S
where S.propertytype in ('item1')
and YEAR(S.time) = YEAR(:currDate)

当您将HQL查询转换为对象Query时,您将以以下方式用setDate函数替换currDate参数:

String hql = 
  "select count(S.id)
  from SalesDiary S
  where S.propertytype in ('item1')
  and YEAR(S.time) = YEAR(:currDate)";

Query q = session.createQuery(hql);

q.setDate("currDate", new GregorianCalendar().getTime());
q.list();

我希望现在可以了;)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将SQL查询转换为HQL,Java Hibernate时出错

来自分类Dev

MySQL查询转换为HQL

来自分类Dev

将 SQL 转换为 HQL

来自分类Dev

如何将处理多个表的SQL嵌套查询转换为相应的HQL?

来自分类Dev

在HQL查询或条件中将字符串列转换为int

来自分类Dev

将查询转换为视图

来自分类Dev

将查询转换为口才

来自分类Dev

将查询转换为行数

来自分类Dev

将查询转换为Laravel

来自分类Dev

将查询转换为IF EXISTS

来自分类Dev

将查询转换为Codeigniter

来自分类Dev

将MySQL查询转换为休眠查询

来自分类Dev

将SQL查询转换为ElasticSearch查询

来自分类Dev

将SQL查询转换为ActiveRecord查询

来自分类Dev

将PostgreSQL查询转换为GORM查询

来自分类Dev

将SQL查询转换为访问查询

来自分类Dev

将SQL查询转换为LINQ查询

来自分类Dev

将mysql查询转换为JPQL查询

来自分类Dev

将SQL查询转换为Codeigniter查询

来自分类Dev

将MySql查询转换为MSSql查询

来自分类Dev

将mysql查询转换为laravel查询

来自分类Dev

将查询转换为嵌套查询

来自分类Dev

将MySQL查询转换为BigQuery查询

来自分类Dev

将 SPARQL 查询转换为 SQL 查询

来自分类Dev

将 rails 查询转换为 mongoid 查询

来自分类Dev

将联合查询转换为连接查询

来自分类Dev

将 MySQL 查询转换为 Laravel 查询

来自分类Dev

将 mysql 查询转换为 Laravel 查询

来自分类Dev

通过查询将组转换为linq