我有一个实体类
@Entity
public class Status{
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="STATUS_SEQ")
Long id;
String statusValue;
@Convert(converter = LocalDateConverter.class)
LocalDate date;
//some other attributes
//getter and setters
}
statusValue
注:
我已经实现了自定义的物理命名策略,所有表的前缀都是t,所有列的前缀都是c,所以数据库和实体中的列名不是sam
问题:
我试图找出不同状态下一个月的日期顺序。我用SQL编写了下面的查询。
SELECT c_status_value,
EXTRACT(DAY FROM c_date),
COUNT(this_.c_status_value)
FROM t_status
WHERE
EXTRACT(MONTH FROM c_date) = 12
GROUP BY c_status_value,EXTRACT(DAY FROM c_date);
现在在代码中,我不想编写本机查询,而是想在hibernate中编写一些东西。我试过用
Criteria
extract
当我使用日期字段时,它不应用命名策略,最终
EXTRACT(DAY FROM date)
date
.
criteria.add(Restrictions.sqlRestriction("EXTRACT(MONTH from {alias}.date) = (:?)", month,tipos));