JPA将简单的String对象映射到Oracle Date类型?

时间:2012-09-26 08:17:10

标签: java jpa orm eclipselink

我有一个表,其中日期列存储为varchar。 在进行Object关系映射时(我正在使用eclipselink)我想将此字符串/ varchar映射到java中的Date对象。

我的表是:

T_BUSINESS
  TRAN_ID        Number, 
  BUSINESS_DATE  Varchar

并且我想选择营业日期在两个输入日期之间的所有行,这里问题是因为BUSINESS_DATE是varchar我无法进行比较。我不能修改表,我不想使用Native sql。

有人能告诉我怎么能这样做。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以使用TypeConverter来映射它,

请参阅,

http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/a_typeconverter.htm#CHDHCCJF

在查询中进行比较可能会更困难,我认为默认日期格式为yyyy-mm-dd,因此varchar比较可能有效。否则,您确实需要数据库上的真实DATE字段。您可以使用数据库函数将varchar转换为DATE以进行比较,例如使用CAST或FUNCTION,其中EclipseLink支持是JPQL。

请参阅, http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/j_cast.htm#cast

http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/j_func.htm#func