如何在hibernate hbm文件中映射boolean

时间:2013-09-19 18:21:35

标签: java hibernate

在我的数据库中,我有像

这样的列
"ISDEFAULTPAYMENTFORCURRENCY" CHAR(1 BYTE) NOT NULL ENABLE,
CHECK (ISDEFAULTPAYMENTFORCURRENCY IN ('N','Y')) ENABLE,

在我的豆子里,我有

    private Boolean isDefaultPaymentForCurrency;

我的问题,如何在hibernate hbm文件中映射此isDefaultPaymentForCurrency

<property name="isDefaultPaymentForCurrency" type="???" column="ISDEFAULTPAYMENTFORCURRENCY" not-null="true"/>

4 个答案:

答案 0 :(得分:2)

使用

<property name="isDefaultPaymentForCurrency"  type="yes_no" column="ISDEFAULTPAYMENTFORCURRENCY" not-null="true"/>

要使用hql,您可以在hibernate.cfg

中设置此属性
<property name="hibernate.query.substitutions">true 'Y', false 'N'</property>

答案 1 :(得分:2)

从Java原语或包装类到适当的(特定于供应商的)SQL的类型映射 列类型。 booleanyes_notrue_false都是Java布尔值或java.lang.Boolean的替代编码。

http://docs.jboss.org/hibernate/stable/core.old/reference/en/html/mapping-types.html

答案 2 :(得分:1)

我引用了the link, Hibernate Mapping Types,最后使用了boolean

一个hbm.xml示例。

    <property name="scheduable" type="boolean" >
        <column name="SCHEDUABLE" not-null="true" default="false" />
    </property>

The mapping types image

答案 3 :(得分:0)

您可能需要尝试以下类型:org.hibernate.type.YesNoType。可以使用以下reference(特别是第6.1.1.3节)。注册为yes_no