簡體   English   中英

使用外鍵關聯進行一對一映射休眠

[英]one-to-one mapping hibernate using foreign key association

是使用hibernate框架而不是通過注釋使用Hibernate學習實體映射的新方法,是使用XML映射實體的方法

在這里,我有兩個類Employee和Address [地址是目標類,而Employee是源類,即Employee表將具有指向地址表主鍵的外鍵列]

class Employee{
String name;
int id;
Address addr;
//getter and setter methods
}

class Address{
String state;
String city
}

mapping.hbm.xml文件:-

<hibernate-mapping>
<class name="Employee" table="emp">
<id name="id" column="id">
<generator class="assigned"/>
</id>
<property name="name" column="emp_name"/>
<one-to-one name="addr" class="Address" foreign-key="addr_id" cascade="all"/>
</class>

<!--mapping for Address Entity-->
<class name="Address" table="address>
<property name="city"/>
<property name"state"/>
</class>
</hibernate-mapping>

注意:-在表級別使用MySQL時,我沒有向employee表添加外鍵約束

而我的問題是在嘗試保存員工實體的addr_id值時未將其存儲在employee表中。如何解決此問題。在Web中,大多數事情都使用注釋或共享主鍵。如何解決此問題請幫幫我

更改您的映射。 您需要完全限定類名並指示join列,這是Employee的PK,列id

雇員

<class name="Employee" table="emp">
<id name="id" column="id">
<generator class="assigned"/>

地址實體必須引用Employee的PK,在您的情況下為id

 <one-to-one name="addr" class="my.package.Employee"
                   unique="true" not-null="true" cascade="all"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM