首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

11 照射- 组件映射(人类与姓名类)

2012-11-03 
11 映射-- 组件映射(人类与姓名类)?User类:?? 注意他的name属性package dao.po/** * User类 (组件映射一

11 映射-- 组件映射(人类与姓名类)

?

User类:?? 注意他的name属性

package dao.po;/** * User类 (组件映射一例) *  * user表要保存 User类 与 Name类 的信息 *  * Name类, 他不会单独保存再一张表中,没有Name.hbm.xml */public class User{private intid;private Namename;//是Name类型, 他不会单独保存再一张表中,没有Name.hbm.xmlprivate Stringemail;}

?

package dao.po;/** *  * Name类 (组件映射一例) *  * 他不是po, 不会单独保存再一张表中,没有Name.hbm.xml *  */public class Name{private StringfristName;private Stringlastname;}

?

User.hbm.xml:

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="dao.po"><class name="User"><id name="id"><generator /><!--  组件映射 --><component name="name"><property name="fristName" column="frist_name"/><property name="lastname" column="last_name"/></component></class></hibernate-mapping>

?

保存操作:

package dao;import org.hibernate.Session;import org.hibernate.Transaction;import dao.po.Name;import dao.po.User;/** * 组件映射一例 *  */public class Component{public static void main(final String[] args){add();}public static void add(){final Name name = new Name();name.setFristName("周");name.setLastname("星驰");final User u = new User();u.setEmail("email@gmail.com");u.setName(name); //建立关联Session session = null;try{session = HibernateUtil.getSeesion();final Transaction tx = session.beginTransaction();session.save(u);tx.commit();}finally{if (session != null){session.close();}}}}

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

1 楼 TTLtry 2009-03-26     问一下,对于那个Name类,是不是在数据库中还要键一个表与之对应? 2 楼 elf8848 2009-03-26   引用问一下,对于那个Name类,是不是在数据库中还要键一个表与之对应?

User 与 Name 两个类 , 共用一张表 3 楼 darrendu 2009-09-29   组件映射是对象模型的细粒度划分,方便复用
Name是个值对象,不会单独建立表的

热点排行