2012-08-10 34 views
0

我的Java应用程序使用hibernate和Oracle 10g作为数据库。 我已经登陆到一个问题,无法继续,我需要你的帮助。 以下是我面临的问题。Oracle和休眠之间的Java DataType不匹配

我在我的一个Oracle表中有一个数据类型为Varchar2(1 byte)的列。 我想知道我需要在pojo类中使用的正确datatpe。 同样在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和.hbm.xml文件isCurrent属性。 它在db中定义为Varchar2(1 byte)。我可能不确定数据类型并将其标记为String,但问题仍然存在。

我已经搜索了网络,但没有得到任何适当的解决方案,这个问题。

你能帮我这里,因为它真的很吃我的头。

+0

如果您发布确切的错误信息这将有助于。 – 2012-08-10 18:59:33

+0

你尝试过什么样的数据类型? – devang 2012-08-10 19:03:55

+0

嗨gotuskar,我已经尝试过String,Char和Byte作为pojo类中isCurrent属性的数据类型,但没有运气。另外我主要关心的是hbm.xml文件中的映射。这里也尝试过但同样的问题。嘿阿龙,我现在没有确切的错误信息,但休眠正在尝试通过使用hbm文件中的映射为isCurrent字段进行转换。 – vikeng21 2012-08-10 19:15:46

回答

1

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

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

对不起,它只是一个错字。它是pojo类中的一个Integer值。 – vikeng21 2012-08-10 19:12:33

+0

嗨orn thanks.As我说你上面指出的configId属性是一个typo.and我不知道我是否会发布整个hbm.xml和pojo类文件,你们肯定会发现我犯了什么错误已承诺。在hbm.xml文件的其余部分中,有一个属性我已经映射到Pojo类中的一个不同的数据类型。通过每一个财产后,我发现我做了什么失误。我对其他人的建议请在提问时发布整个hbm.xml和pojo类。有人可能会发现错误是什么.. – vikeng21 2012-08-11 11:39:36

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> 
+0

谢谢曼科。是的,我需要在列中存储isCurrent的Y/N值,但列数据类型是Oracle中的Varchar2(1字节)。我已经试过这个选项,但是hibernate给出了一个topluizer错误,告诉“无法找到isCurrent属性的getter” 。我不确定它是某种映射问题还是数据类型问题。 – vikeng21 2012-08-11 04:07:19

+0

manko你的解决方案也适用,如果我将属性的数据类型转换为布尔值。还有一个我错误映射的不同的属性。也感谢你。 – vikeng21 2012-08-11 11:40:48