1

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

我的桌子是:

T_BUSINESS
  TRAN_ID 号码,
  BUSINESS_DATE瓦查尔

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

谁能告诉我我该怎么做。

提前致谢!

4

1 回答 1

1

您可以使用 TypeConverter 来映射它,

看,

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

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

于 2012-09-26T13:06:53.197 回答