使用Hibernate将Oracle Date映射到Java对象

Nat*_*ars 5 java oracle mapping hibernate

我收到消息"文字与格式字符串不匹配".

例如,以下是Java类中的一些方法:

public String getDateTime();
public void setDateTime(String date_time);
Run Code Online (Sandbox Code Playgroud)

以下是该类的Hibernate配置文件的映射:

<property name="dateTime" column="date_time">
Run Code Online (Sandbox Code Playgroud)

这是该列的DDL:

 CREATE TABLE "SCHEMA"."TABLE_NAME" 
   (    
    "DATE_TIME" DATE, 
    etc.
   )
Run Code Online (Sandbox Code Playgroud)

我尝试将type ="date"和"timestamp"(不是同时)设置为hibernate配置中属性的attr,然后将Java类型从String更改为Date,但这给了我一个不同的错误.我读了一些关于绑定参数的内容,但却无法做出正面或反面.

当我从配置中注释掉该属性时,其他一切都正常工作,所以我确定这是我的问题.令人讨厌的是我有另一个表/类映射,看起来是相同的Oracle Date-> Java String映射,它没有给我这个问题.

Mar*_*ark 8

最好使用Java.util日期类作为反映oracle日期列的属性.

Class blah{
private Date dateTime;

public Date getDateTime();
public void setDateTime(Date dateTime);

blah(){}

}
Run Code Online (Sandbox Code Playgroud)

使用Date作为Java类属性时出现的错误是什么?

  • 这仅在您不在映射属性中包含"type"属性时才有效:<property name ="dateTime"column ="date_time">如果您包含值为"date"或"timestamp"的类型,它将不准确地转换值.所以以下是坏的:<property name ="dateTime"column ="date_time"type ="date">这是一个解释为什么会这样的链接:http://fishbowl.pastiche.org/2005/07/13/ hibernate_oracle_and_dates_a_story /这里有一个解释解决方案的链接:http://www.enavigo.com/2007/10/20/mapping-hibernate-to-oracle-date-fields/ (2认同)