JPA标准to_date

时间:2018-02-02 21:11:14

标签: oracle jpa criteria

我有一个表格,其中日期字段是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')

1 个答案:

答案 0 :(得分:0)

纯粹使用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();