Oracle与Hibernate之间的Java DataType不匹配

时间:2012-08-10 18:51:34

标签: java oracle hibernate oracle10g hibernate-mapping

我的java应用程序使用hibernate和Oracle 10g作为数据库。 我陷入了一个问题,无法继续,我需要你的帮助。 以下是我面临的问题。

我的Oracle表中有一个列,其数据类型为Varchar2(1 byte)。 我想知道我需要在我的pojo类中使用的正确dataype。 同样在hibernate映射文件中,应该是同一属性的数据类型。 当我运行文件时,hibernate一直在给出错误,就像无法进行转换一样。 下面是我的pojo和.hbm文件

public class destination implements Serializable{

    private String configId;        
    private String isCurrent;        
    //other properties and getter, setters

}

destination.hbm.xml

<class name="com.testing" table="configuration">
    <id name="configID" type="java.lang.Integer">
        <column name="configuration_id" />
        <generator class="identity" />
    </id>
   <property name="isCurrent" type="Not-SURE">
        <column name="is_current" not-null="true" />
    </property>

我所说的专栏是pojo和isCurrent文件中的.hbm.xml属性。 它在db中定义为Varchar2(1 byte)。我不确定数据类型并将其标记为String,但问题仍然存在。

我已经在网上搜索过但没有找到解决此问题的正确方法。

你能不能帮助我,因为它真的很喜欢我的头脑。

2 个答案:

答案 0 :(得分:1)

我会专注于你在类中声明为String但在xml中将其声明为Integer的configId。

<id name="configID" type="java.lang.Integer">

答案 1 :(得分:0)

我猜你想在记录上存储当前的标志。在这种情况下,你可以做

public class destination implements Serializable{

    private String configId;        
    private boolean current;        

    public boolean isCurrent() {
        return current;
    } 

}

和hbm映射如

<property name="current" type="yes_no">
        <column name="is_current" not-null="true" />
    </property>