是使用hibernate框架的Hibernate学习实体映射的新手,而不是使用XML来映射实体的注释
这里我有两个类Employee和Address [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值没有存储在员工表中如何解决这个问题.Web的大部分内容都是使用注释或共享主键。如何解决这个问题请帮助我
答案 0 :(得分:0)
更改您的地图。您需要完全限定类名并指示加入列,即员工的PK,列id
。
员工
<class name="Employee" table="emp">
<id name="id" column="id">
<generator class="assigned"/>
地址实体必须引用员工的PK,在您的情况下为id
:
<one-to-one name="addr" class="my.package.Employee"
unique="true" not-null="true" cascade="all"/>