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>

ただし、データベースでは、行のいずれかの列が空の場合。その後、休止状態は顧客オブジェクトを返さず、null を返します。私が推測しているのは、すべての列が複合 ID にあるためです。そのため、その行でいずれかの列が空の場合、null オブジェクトが返されます。コード値しか利用できない場合、休止状態の POJO オブジェクト Customer を取得するにはどうすればよいですか?

4

1 に答える 1

0

id /主キーはnullであってはならず、一意であってはなりません。CompositeIdマッピングの主キーを形成する列のみを含めます。IDで1つのインスタンスを取得するには、

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