组件映射配置
来源:互联网 发布:淘宝助理教学视频 编辑:程序博客网 时间:2024/05/01 20:50
组件的映射也不常见,把对象粒度分的更细了,但是组件和宿主还是在一张表里,这样更加面向对象了,注意配置id的配置选项,组件需实现序列化接口
1,Employee.java
package com.model;import java.io.Serializable;public class Employee implements Serializable{private EmployeeId employeeId;private String address;private int age;public EmployeeId getEmployeeId() {return employeeId;}public void setEmployeeId(EmployeeId employeeId) {this.employeeId = employeeId;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
2,EmployeeId.java
package com.model;import java.io.Serializable;public class EmployeeId implements Serializable{private String empNo;private String empName;public String getEmpNo() {return empNo;}public void setEmpNo(String empNo) {this.empNo = empNo;}public String getEmpName() {return empName;}public void setEmpName(String empName) {this.empName = empName;}}
3,Employee.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.model"><class name="Employee" table="employee"><composite-id class="EmployeeId" name="employeeId"><key-property name="empNo"></key-property><key-property name="empName"></key-property></composite-id><property name="address" column="address"></property><property name="age" column="age"></property></class></hibernate-mapping>
4,单元测试
@Testpublic void testEmployee(){Session s = HibernateUtil.getInstance().getSession();s.beginTransaction();//添加员工EmployeeId eid = new EmployeeId();eid.setEmpNo("02");eid.setEmpName("name02");Employee e = new Employee();e.setEmployeeId(eid);e.setAddress("sdfdf");e.setAge(20);s.save(e);//查询员工EmployeeId eid2 = new EmployeeId();eid2.setEmpNo("01");eid2.setEmpName("name01");Employee employee = (Employee) s.load(Employee.class, eid2);System.out.println(employee.getAddress());s.getTransaction().commit();s.close();}
5,输出结果
sdfdfHibernate: insert into employee (address, age, empNo, empName) values (?, ?, ?, ?)
6,如果不是主键的组件,只需要变动一下映射文件里的配置如下
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.model"><class name="Employee" table="employee"><!-- <composite-id class="EmployeeId" name="employeeId"><key-property name="empNo"></key-property><key-property name="empName"></key-property></composite-id> --><id column="id" name="id"><generator class="native"></generator></id><component name="employeeId" class="EmployeeId"><property name="empNo" column="empNo"></property><property name="empName" column="empName"></property></component><property name="address" column="address"></property><property name="age" column="age"></property></class></hibernate-mapping>
- 组件映射配置
- Hibernate组件映射配置
- hibernate中组件映射配置详细解析
- 组件映射
- 组件映射
- 组件映射
- 组件映射
- 百度UEditor 上传组件 使用虚拟路径映射配置
- 组件映射和集合映射
- Hibernate高级映射 --- 组件映射
- 组件映射与继承映射
- 组件(Component)映射
- Hibernate组件映射
- 映射倒影组件
- hibernate中的组件映射
- hibernate之映射组件
- Hibernate组件映射
- Hibernate组件映射
- 使用DMO获取缓存里的执行计划
- 每间隔K个元素逆转一次单链表
- mongoDB——自动分片介绍及简单实现
- org.apache.hadoop.security.AccessControlException: Permission denied: user=xxj, acces
- 婴儿常见问题总结
- 组件映射配置
- 迅雷校园面试题
- 美团网2014年校园招聘笔试题(哈工大)
- CSS样式命名整理
- 学习笔记-XML基础
- 初学 Java 很多不懂:常用功能代码
- linux进程状态
- JAVA学习--GridLayout
- AJAX 跨域请求 - JSONP获取JSON数据