小编use*_*507的帖子

使用 jpql 和 jpa 从日期字段中提取年份

我想从数据库中的一行中提取年份部分,以便将其与值进行比较。

这是我的功能

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

java jpa jpql

6
推荐指数
2
解决办法
3万
查看次数

标签 统计

java ×1

jpa ×1

jpql ×1