第九章 關係映射 組件關聯映射
組件是針對同一張表中的字段進行映射,作用是將字段多的一張表分成多個實體類來表示。
如:name與user
user表中有first_name及last_name。在實體類中,自定義一個Name類來表示first_name與last_name;
Name實體類:
package cn.framelife.mvc.entity;
public class Name {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
User實體類:
package cn.framelife.mvc.entity;
import java.io.Serializable;
public class User implements Serializable {
private Integer id;
private Name name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
}
User.hbm.xml:
<hibernate-mapping>
<class name="cn.framelife.hibernate.entity.User" table="user" catalog="hibernate">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator />
</id>
<component name="name" >
<property name="firstName" column="first_name"></property>
<property name="lastName" column="last_name"></property>
</component>
</class>
</hibernate-mapping>
增加操作:
tx = session.beginTransaction();
Name name = new Name();
name.setFirstName("111");
name.setLastName("2222");
User user = new User();
user.setName(name);
session.save(user);
tx.commit();
最後更新:2017-04-03 18:52:08