Java 如何使hibernate单向多对多关联可更新?

Java 如何使hibernate单向多对多关联可更新?,java,hibernate,many-to-many,updates,Java,Hibernate,Many To Many,Updates,我有两个实体-类别和属性类别可以有多个相关属性,属性可以与任意数量的类别相关。关联应仅在类别侧可用-属性对象不知道与其相关的类别 因此,我将这种关联建模为单向多对多: Category.hbm.xml <class name="Category" table="category" proxy="ICategory" entity-name="category"> <id name="id" column="id" unsaved-value="null"><ge

我有两个实体-
类别
属性
<代码>类别可以有多个相关属性,
属性
可以与任意数量的类别相关。关联应仅在
类别
侧可用-
属性
对象不知道与其相关的类别

因此,我将这种关联建模为单向多对多:

Category.hbm.xml

<class name="Category" table="category" proxy="ICategory" entity-name="category">
  <id name="id" column="id" unsaved-value="null"><generator class="identity" /></id>
  ...some properties...
  <bag name="relatedAttributes" table="category_attribute" fetch="select">
    <key column="id_category" />
    <many-to-many column="id_attribute" entity-name="attribute" />
  </bag>
</class>

如何使此关联可更新?最终完成。影响行为的更改:

<bag name="relatedAttributes" table="category_attribute" fetch="select" inverse="false" cascade="save-update">
  ...
</bag>

...
并且不要忘记在操作后调用session.flush()

ICategory c = (ICategory) session.get("category", 1);
c.getRelatedAttributes().add((IAttribute) session.get("attribute", 2));
session.update("category", c);
<bag name="relatedAttributes" table="category_attribute" fetch="select" inverse="false" cascade="save-update">
  ...
</bag>