嗨,我对休眠映射和以下保存操作有一些疑问。
我有 Dealer.class 这个属性:
public class Dealer extends Persistent {
private static final long serialVersionUID = 306594798010394718L;
private Domain domain;
private Integer status;
private DealerData activeData; // this property belongs to DealerData.class
private Set<DealerData> historyData;
他的映射是这样的
<hibernate-mapping>
<class name="sk.bantip.hotel.server.dao.book.Dealer" table="book_dealer" dynamic-update="true" select-before-update="true">
<id column="idBook_dealer" name="id" type="java.lang.Long">
<generator class="identity" />
</id>
<many-to-one name="activeData" column="idBook_dealerData"
class="sk.bantip.hotel.server.dao.book.DealerData" />
<set name="historyData" inverse="true">
<key column="idBook_dealer" />
<one-to-many class="sk.bantip.hotel.server.dao.book.DealerData" />
</set>
<property name="status" not-null="false" />
</class>
和 DealerData.class
public class DealerData extends Persistent {
private static final long serialVersionUID = 8424120040396958913L;
private String name;
private String registration;
private String taxNumber;
private Long authorUserId;
.... many other props
和 DealerData hbm.xml
<hibernate-mapping>
<class name="sk.bantip.hotel.server.dao.book.DealerData" table="book_dealerData" dynamic-update="true" select-before-update="true" >
<id column="idBook_dealerData" name="id" type="java.lang.Long">
<generator class="identity" />
</id>
<property name="name" not-null="true" />
<property name="registration" not-null="true"/>
<property name="taxNumber" not-null="true" />
<property name="timestamp" not-null="true" />
<property name="authorUserId" column="idAuthor" not-null="true" update="false"/>
<many-to-one name="dealer" column="idBook_dealer"
not-null="true" class="sk.bantip.hotel.server.dao.book.Dealer" update="false" />
</class>
基于这个我的映射我不知道我必须在哪里定义cascade="save-update"
操作。当我想通过 JSF 输入字段从表单 DealerData 保存属性并提交整个页面时,此语句必须在<many-to-one>
DealerData 或 Dealer 的标签内?
我也将 DealerData 的外键设置为 Dealer 中的 NULL。DealerData 中 Dealer 的外键检查为 NOT-NULL,我想保存 DealerData 值,然后必须保存 Dealer。所以经销商的 ID 也必须生成,但不知道如何,因为我得到了 FK 列Column 'id_dealer' 不能为空
有人可以帮我解决这个问题,以及我如何正确构造保存方法,以便两个类都保存在这个方法中吗?非常感谢您的建议。干杯