Hibernate を使用してマッピングされたコンポーネントがあります。データベース内のコンポーネントのすべてのフィールドが null の場合、コンポーネント自体は hibernate によって null に設定されます。これは予想される動作であり、必要なものでもあります。
私が抱えている問題は、そのコンポーネントにバッグを追加すると、バッグが空のリストに初期化されることです。これは、コンポーネントにnull以外の値があることを意味します...その結果、コンポーネントが作成されます。
これを修正する方法はありますか?
<class name="foo.bar.Entity" table="Entity">
<id name="id" column="id">
<generator class="native" />
</id>
<property name="departure" column="departure_time" />
<property name="arrival" column="arrival_time" />
<component name="statistics">
<bag name="linkStatistics" lazy="false" cascade="all" >
<key column="entity_id" not-null="true" />
<one-to-many class="foo.bar.LinkStatistics" />
</bag>
<property name="loggedTime" column="logged_time" />
...
</component>
Restirctions.isNull("statistics") を使用した基準は、期待値を返します。