Hibernate复合键中的所有列 - 不返回POJO对象

时间:2012-08-10 13:49:01

标签: hibernate

这是我的hbm.xml文件结构。

<hibernate-mapping>
<class name="customer" table="Customer" schema="Schem">
    <composite-id name="id" class="Customerid">
        <key-property name="code" type="java.lang.String">
            <column name="CODE" length="10" />
        </key-property>
        <key-property name="name" type="java.lang.String">
            <column name="NAME" length="10" />
        </key-property>
        <key-property name="address" type="java.lang.String">
            <column name="ADDRESS" length="100" />
        </key-property>
        <key-property name="contactnumber" type="java.lang.String">
            <column name="CONTACTNUMBER" length="15" />
        </key-property>
    </composite-id>
</class>
</hibernate-mapping>

但在数据库中,如果一行中的任何一列为空。然后hibernate不返回任何Customer对象并返回null。我猜的是因为所有列都在复合id中,这就是为什么如果任何一列在该行中为空,它将返回null对象。 当我只有代码值可用时,如何获取hibernate POJO对象Customer?

1 个答案:

答案 0 :(得分:0)

ID /主键必须不为空并且唯一。仅包括在compositeId映射中形成主键的列。要通过id获取一个实例,请使用

Customer customer = session.get(Customer.class, new Customer(<id properties));