我有一个使用 Hibernate 映射的组件。如果数据库中组件的所有字段都为null,则组件本身被hibernate设置为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") 的条件确实返回了预期值。