0

这是我的 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不返回任何客户对象并返回null。我猜是因为所有列都在复合 id 中,这就是为什么如果该行中的任何一列为空,它会返回 null 对象。当我只有代码值可用时如何获取休眠 POJO 对象客户?

4

1 回答 1

0

id/主键不能为 null并且是唯一的。仅包括构成 CompositeId 映射中的主键的列。要通过 id 获取一个实例,请使用

Customer customer = session.get(Customer.class, new Customer(<id properties));
于 2012-08-14T05:48:28.463 回答