Oracle和hibernate之间的Java数据类型不匹配

Oracle和hibernate之间的Java数据类型不匹配,java,oracle,hibernate,oracle10g,hibernate-mapping,Java,Oracle,Hibernate,Oracle10g,Hibernate Mapping,我的java应用程序使用hibernate和Oracle 10g作为数据库。 我遇到了一个问题,无法继续,我需要你的帮助。 下面是我面临的问题 我的Oracle表中有一列的数据类型为Varchar2(1字节)。 我想知道我需要在pojo类中使用的正确数据类型。 在hibernate映射文件中,相同属性的数据类型应该是什么。 当我运行文件hibernate时,它不断地给出错误,比如无法进行转换。 下面是我的pojo和.hbm文件 public class destination implement

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

我的Oracle表中有一列的数据类型为
Varchar2(1字节)
。 我想知道我需要在pojo类中使用的正确数据类型。 在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
属性。 它在数据库中定义为
Varchar2(1字节)
。我不确定数据类型,并将其标记为
字符串
,但问题仍然存在

我已经在网上搜索过了,但还没有找到解决这个问题的合适方法


你能帮我一个忙吗,因为它真的让我头疼。

我会把重点放在configId上,你在类中将它声明为String,但在xml中声明为Integer

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

我猜您想在记录上存储当前标志。那样的话你可以

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>


如果您发布了准确的错误消息,这会有所帮助。您好,我已经尝试将String、Char和Byte作为pojo类中isCurrent属性的数据类型,但没有成功。另外,我主要关心的是hbm.xml文件中的映射。这里也有同样的问题。嘿,Arron,我现在没有确切的错误消息,但是hibernate正在尝试使用hbm文件中的映射对isCurrent字段进行转换。对不起,这只是一个输入错误。这是pojo类中的一个整数值。您好,谢谢。正如我所说的,您上面指出的configId属性是一个输入错误。我不知道我是否会发布整个hbm.xml和pojo类文件,你们肯定会发现我犯了什么错误。在hbm.xml文件的其余部分中,有一个属性,我已将其映射到pojo类中的不同数据类型。在检查了每一处房产之后,我发现我犯了什么错误。我给其他人的建议是,当你问问题时,请把整个hbm.xml和pojo类都贴出来。也许有人会发现错误所在谢谢manko。是的,我需要在列中存储isCurrent的Y/N值,但Oracle中的列数据类型为Varchar2(1字节)。我已经尝试过此选项,但hibernate出现topluizer错误,提示“找不到isCurrent属性的getter”。我不确定这是某种映射问题还是数据类型问题。manko如果我将属性的数据类型转换为布尔值,您的解决方案也会起作用。嗯,有一个不同的属性,我把它映射错了。也谢谢你。