【问题标题】:JPA Criteria to_dateJPA 标准 to_date
【发布时间】:2018-07-13 10:35:05
【问题描述】:

我有一个表,其中日期字段是 varchar。由于它是一个遗留应用程序,我不想更改数据类型。我想在标准中编写以下查询。任何帮助将不胜感激

select * from ucms_vu vu where vu.case_e_dt is not null and to_date(vu.case_e_dt,'YYYY-MM-DD') = to_date('2018-02-02','YYYY-MM-DD')

【问题讨论】:

    标签: oracle jpa criteria


    【解决方案1】:

    使用纯粹的 JPA,我相信这是不可能的。因为您想对不可操作的数据进行特定操作。

    如果您也使用 Hibernate,@Formula 注释可以解决您的问题。

    您可以在 ucms_vu 实体中创建属性:

    @Formula("to_date(case_e_dt,'YYYY-MM-DD')")
    private Date caseE;
    

    您的条件将使用此属性来执行查询。

    例如:

    Criteria criteria = session.createCriteria(Ucms_vu.class, "ucms");
    criteria.add(Restrictions.eq("ucms.caseE", new Date("your date 02/02/2018"));
    criteria.list();
    

    【讨论】:

    • 我使用了 CriteriaBuilder.function 并且确实有效
    • 所以请在您的解决方案中发布答案。
    猜你喜欢
    • 1970-01-01
    • 2017-04-18
    • 2011-10-17
    • 2018-09-04
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多