Hibernate读书笔记-----Hibernate的关联映射之组件属性关联关系
2012-07-05 09:32
549 查看
先看User持久化类:
从User持久化类中可以看到name不再是一个简单的String,而是一个类。在这里name就是一个组件属性,在name类中可以包含基本数据类型、字符型、日期型甚至是组件和关联实体。从User持久化类中我们看不出name是关联实体还是普通的组件属性。但是如果我们将Name映射成持久化实体,那么Name就是关联实体,如果不映射成持久化类,那么就是组件属性。这里我们不将Name映射成持久化类。
Name类如下:
为了映射User类中的Name组件,映射文件中使用<component.../>元素来映射该主键元素。映射文件如下:
User.hbm.xml
操作类如下:
读李刚《轻量级Java EE 企业应用实战》
public class Users { private int id; private Date birthday; private Name name; public int getId() { return id; } public void setId(int id) { this.id = id; } public Date getBirthday() { return birthday; } public void setBirthday(Date birhday) { this.birthday = birhday; } public Name getName() { return name; } public void setName(Name name) { this.name = name; } }
从User持久化类中可以看到name不再是一个简单的String,而是一个类。在这里name就是一个组件属性,在name类中可以包含基本数据类型、字符型、日期型甚至是组件和关联实体。从User持久化类中我们看不出name是关联实体还是普通的组件属性。但是如果我们将Name映射成持久化实体,那么Name就是关联实体,如果不映射成持久化类,那么就是组件属性。这里我们不将Name映射成持久化类。
Name类如下:
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类中的Name组件,映射文件中使用<component.../>元素来映射该主键元素。映射文件如下:
User.hbm.xml
<hibernate-mapping package="com.hibernate.domain"> <class name="Users"> <id name="id"> <generator class="native" /> </id> <property name="birthday" /> <!-- 映射组件元素 --> <component name="name"> <!-- 映射组件的name属性指向包含实体 --> <property name="firstName" column="first_name"/> <property name="lastName" column="last_name"/> </component> </class> </hibernate-mapping>
操作类如下:
public class UserManager { public static void main(String[] args) { Session session = HibernateUtil.getSession(); Transaction tx = session.beginTransaction(); Users users = new Users(); users.setBirthday(new Date()); Name name = new Name(); name.setFirstName("first name"); name.setLastName("last name"); users.setName(name); session.save(users); tx.commit(); session.close(); } }
读李刚《轻量级Java EE 企业应用实战》
相关文章推荐
- Hibernate读书笔记-----Hibernate的关联映射之组件属性关联关系
- Hibernate读书笔记-----Hibernate的关联映射之组件属性关联关系
- Hibernate_映射_关联关系_cascade属性、单向关联
- Hibernate映射一对多双向关联关系及部门关联属性
- Hibernate:组件属性和关联映射的区别
- Hibernate的关联映射---6.1.8: 组件属性包含的关联实体
- Hibernate:组件属性和关联映射的区别
- Hibernate读书笔记-----Hibernate的关联映射之1-N关联映射
- 10-hibernate组件关联关系映射
- Hibernate读书笔记-----Hibernate的关联映射之N-1关联映射
- Hibernate读书笔记-----Hibernate的关联映射之N-1关联映射
- Hibernate 映射组件属性
- Hibernate关联关系映射(多对一关联映射)
- Hibernate读书笔记-----Hibernate的关联映射之1-1关联映射
- Hibernate映射组件(对象)、组件集合属性
- Hibernate读书笔记-----Hibernate的关联映射之N-1关联映射
- 2 Hibernate映射 属性 主键 集合 组件 联合主键
- Hibernate学习之---映射组件属性
- Hibernate读书笔记-----Hibernate的关联映射之N-N关联映射 .
- Hibernate基础 ( 3 ) 组件属性映射