使用Hibernate将Oracle日期映射到Java对象

使用Hibernate将Oracle日期映射到Java对象,java,oracle,hibernate,mapping,Java,Oracle,Hibernate,Mapping,我收到消息“文本与格式字符串不匹配” 例如,以下是来自Java类的一些方法: public String getDateTime(); public void setDateTime(String date_time); 下面是该类的Hibernate配置文件的映射: <property name="dateTime" column="date_time"> 我尝试在hibernate配置中将type=“date”和“timestamp”(不是同时)设置为属性的attr,然后将J

我收到消息“文本与格式字符串不匹配”

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

public String getDateTime();
public void setDateTime(String date_time);
下面是该类的Hibernate配置文件的映射:

<property name="dateTime" column="date_time">
我尝试在hibernate配置中将type=“date”和“timestamp”(不是同时)设置为属性的attr,然后将Java类型从String更改为date,但这给了我一个不同的错误。我读了一些关于绑定参数的内容,但对此一无所知


当我从配置中注释掉该属性时,其他所有内容都在工作,所以我确定这是我的问题。令人恼火的是,我有另一个表/类映射,它似乎具有相同的Oracle日期->Java字符串映射,但却没有给我这个问题。

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

Class blah{
private Date dateTime;

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

blah(){}

}

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

dateTime属性的类型应为Timestamp或Date,这将自动将Oracle日期/时间转换为它。我不认为把日期作为字符串来保存有什么意义,因为你必须涉及格式

嗯。我不认为我第一次将setter方法参数的类型从String更改为Date。感觉很傻,因为这次它工作得很顺利。这只在映射属性中不包含“type”属性的情况下有效:如果包含值为“date”或“timestamp”的类型,它将无法准确转换值。所以以下是不好的:这里有一个链接解释为什么这是真的:这里有一个链接解释解决方案:
Class blah{
private Date dateTime;

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

blah(){}

}