【发布时间】:2016-03-21 14:10:43
【问题描述】:
我想从数据库中的一行中提取年份部分,以便将其与值进行比较。
这是我的功能
public List<Dossier> getAllDossierParAn() {
Date date = new Date();
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
int strI = calendar.get(Calendar.YEAR);
TypedQuery<Dossier> query;
query = em.createQuery("SELECT d FROM DOSSIER d WHERE EXTRACT(YEAR ,d.dateCreation)=2015", Dossier.class);
System.out.println(strI);
return query.getResultList();
}
我总是得到
在 EntityManager 中创建查询时发生异常: 异常描述:编译问题 [SELECT d FROM DOSSIER d WHERE EXTRACT(YEAR FROM d.dateCreation)=2015]。 [14, 21] 抽象模式类型“DOSSIER”是未知的。 [48, 62] 状态字段路径 'd.dateCreation' 无法解析为有效类型。
我直接在数据库中测试它,它可以工作
select * from dossier where extract(year from date_creation)=2015
我使用 jpa 和 ejb 和 jdeveloper 作为 IDE。
【问题讨论】: