[英]Hibernate + Spring + persist one-to-one relation + empty foreign key
我試圖與Spring 1.2.8和Hibernate 3.2.7ga保持一對一的關系,但外鍵始終為空。
但首先讓我簡要介紹一下:
我有兩個稱為“ ClientDomain”(Web域)和“ Measurement”的實體。
休眠映射文件:
ClientDomain.hbm.xml:
<hibernate-mapping package="statistics.jobs.domain">
<class name="ClientDomain" table="domains" lazy="false">
<id column="id" name="id" type="int">
<generator class="native"/>
</id>
<property name="version" not-null="false"/>
<property name="url"/>
<property name="etrackerApiUser" column="etracker_api_user"/>
<property name="etrackerApiKey" column="etracker_api_key"/>
<property name="etrackerUsername" column="etracker_username"/>
<property name="etrackerPassword" column="etracker_password"/>
<set
name="measurements"
table="measurements"
lazy="false"
cascade="merge,save-update"
inverse="true">
<key column="domain" />
<one-to-many class="Measurement"/>
</set>
</class>
</hibernate-mapping>
Measurement.hbm.xml:
<hibernate-mapping package="statistics.jobs.domain">
<class name="Measurement" table="measurements" lazy="false">
<id column="id" name="id" type="int">
<generator class="native"/>
</id>
<property name="version" not-null="false"/>
<property name="time" type="java.util.Date"/>
<property name="numberOfDocuments" column="documents"/>
<one-to-one
name="domain"
class="ClientDomain"
cascade="merge,save-update"
/>
</class>
</hibernate-mapping>
我從某個域的各種來源獲取一些統計信息,然后想要保留它們。 這樣,我就擁有一個域的歷史記錄。
ClientDomain對象已經是持久的。
這樣創建一個Measurement對象:
Measurement measurement = new Measurement();
measurement.setDomain(domain);
measurement.setTime(new Date());
measurement.setNumberOfDocuments(22222);
measurementManager.insertMeasurement(measurement);
insertMeasurement(測量尺寸):
public void insertMeasurement(Measurement measurement) {
getHibernateTemplate().saveOrUpdate(measurement);
}
結果如下:
+----+---------+-----------+---------------------+--------+
| id | version | documents | time | domain |
+----+---------+-----------+---------------------+--------+
| 82 | NULL | 22222 | 2009-11-16 14:28:32 | NULL |
| 83 | NULL | 22222 | 2009-11-16 14:28:33 | NULL |
| 84 | NULL | 22222 | 2009-11-16 14:28:34 | NULL |
+----+---------+-----------+---------------------+--------+
我已經檢查了域實例是否正確。 一切都應有。
那我在做什么錯? 為什么域外鍵沒有與測量一起保存?
到目前為止我嘗試過的是:
但是到目前為止,我還沒有運氣。
從ClientDomain到度量,您之間存在一對多的關系。 但是,從Measurement到ClientDomain,您之間存在一對一的關系。
使Measurement與ClientDomain之間的關系成為多對一關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.