我有一个类A {a_id,其他属性列表)和类B {b_id,其他属性)。 我有A和B的不同表和映射表A_B(a_id,b_id,displayorder)。表中的条目是常量。我们可以从表A中插入/更新/删除。我尝试使用list在hibernate中映射它,但它没有在A_B中插入任何行。应该是映射上述场景的理想方式。
<class name="A" table="A">
<id name="templateKey" column="templateKey">
<generator class="native" />
</id>
<property name="id" column="id"/>
<property name="name" column="name"/>
<list name="selectedColumns" table="A_B">
<key column="templateKey"/>
<list-index column="displayOrder"/>
<one-to-many class="B" />
</list>
</class>
<class name="B" table="B">
<id name="columnKey" column="columnKey">
<generator class="native" />
</id>
<property name="displayName" column="displayName" />
</class>
答案 0 :(得分:1)
像这样更改你的hbm文件。 您错过了A的hbm文件中的 Cascade ,这就是为什么我怀疑它没有插入A_B。
<class name="A" table="A">
<id name="templateKey" column="templateKey">
<generator class="native" />
</id>
<property name="id" column="id" />
<property name="name" column="name" />
<list name="selectedColumns" table="A_B" cascade="all">
<key column="templateKey" />
<list-index column="displayOrder" />
<one-to-many class="B" />
</list>
</class>