我想从数据库中的一行中提取年份部分,以便将其与值进行比较。
这是我的功能
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();
}
Run Code Online (Sandbox Code Playgroud)
我总是得到
在 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
Run Code Online (Sandbox Code Playgroud)
我正在使用jpaand作为ejbIDE jdeveloper。