- 浏览: 183712 次
- 性别:
- 来自: 北京
最新评论
-
392214559:
事务时访问数据库的一个操作序列,数据库应用系统通过事务集来完成 ...
数据库中事务的概念及其性质 -
ghl116:
...
JPA入门实例 -
woainichenxueming:
引用
[img][/img][flash=200,200][ ...
ThreadLocal在spring框架中的作用 -
xinbaby61:
学习了!
HashMap,HashTable,HashSet区别 -
hellostory:
无语这样的人....
JPA入门实例
domain类:
Employee.java
package com.zhaosoft.domain;
public class Employee {
private int id;
private String name;
private Department depart;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Department getDepart() {
return depart;
}
public void setDepart(Department depart) {
this.depart = depart;
}
}
两个子类:sales.java
package com.zhaosoft.domain;
public class Sales extends Employee{
private int sell;//销售额
public int getSell() {
return sell;
}
public void setSell(int sell) {
this.sell = sell;
}
}
Skiller.java
package com.zhaosoft.domain;
public class Skiller extends Employee{
private String skill;
public String getSkill() {
return skill;
}
public void setSkill(String skill) {
this.skill = skill;
}
}
映射文件:<?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="com.zhaosoft.domain">
<!-- 当discriminator-value值为0时,为普通员工 -->
<class name="Employee" discriminator-value="0">
<id name="id">
<!-- 表示主键为自动增长 -->
<generator class="native"/>
</id>
<!-- 鉴别器,区分是那一种子类 -->
<discriminator column="type" type="int"/>
<property name="name" type="string"/>
<many-to-one name="depart" class="Department" column="depart_id"></many-to-one>
<!-- 当为1时,为技术人员 -->
<subclass name="Skiller" discriminator-value="1">
<property name="skill"></property>
</subclass>
<!-- 当为2时为销售人员 -->
<subclass name="Sales" discriminator-value="2">
<property name="sell"></property>
</subclass>
</class>
</hibernate-mapping>
测试:
package com.zhaosoft.test;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.zhaosoft.domain.Department;
import com.zhaosoft.domain.Employee;
import com.zhaosoft.domain.Sales;
import com.zhaosoft.domain.Skiller;
import com.zhaosoft.hibernate.HibernateUtil;
public class Many2One {
public static void main(String[] args) {
add();
//queryDepartment(1);
//queryEmployee(1);
}
public static void queryDepartment(int id) {
Session s = HibernateUtil.getSession();
try {
Transaction t = s.beginTransaction();
t.begin();
Department de = (Department) s.get(Department.class, 1);
t.commit();
Hibernate.initialize(de.getEmps());
System.out.println(de.getName());
Set<Employee> set=de.getEmps(); //加载数据
Iterator<Employee> it=set.iterator();
while(it.hasNext()){
Employee employee= it.next();
System.out.println(employee.getName());
}
} catch (Exception e) {
} finally {
if (s != null) {
s.close();
}
}
}
public static Employee queryEmployee(int id) {
Session s = null;
Transaction tx=null;
try {
s=HibernateUtil.getSession();
tx=s.beginTransaction();
Employee emp=(Employee)s.get(Employee.class,id);
//Hibernate.initialize(emp.getDepart());
tx.commit();
return emp;
} finally {
if (s != null) {
s.close();
}
}
}
public static void add() {
Session s = null;
Transaction t=null;
try {
s=HibernateUtil.getSession();
t = s.beginTransaction();
t.begin();
Department d = new Department();
d.setName("销售部");
Employee employee1 = new Employee();
employee1.setName("小三");
employee1.setDepart(d);
Skiller employee2 = new Skiller();
employee2.setName("李斯");
employee2.setSkill("skill");
employee2.setDepart(d);
Sales employee3 = new Sales();
employee3.setName("王五");
employee3.setSell(100);
employee3.setDepart(d);
Set<Employee> set=new HashSet<Employee>();
set.add(employee1);
set.add(employee2);
set.add(employee3);
d.setEmps(set);
s.save(d);
s.save(employee1);
s.save(employee2);
s.save(employee3);
t.commit();
} catch (Exception e) {
} finally {
if (s != null) {
s.close();
}
}
}
}
发表评论
-
240多个jQuery插件
2008-11-27 21:41 1331jQuery 是继 prototype 之后又一个优秀的 J ... -
数据库中事务的概念及其性质
2008-11-06 10:30 3300事务时访问数据库的一个操作序列,数据库应用系统通过事务集来完成 ... -
Office Project Professional 2007 简体中文版下载
2008-11-05 21:23 23773Office Project Professional 200 ... -
ArrayList
2008-10-17 15:50 12511、什么是ArrayList? ? ArrayList就是传说 ... -
java实现mysql的数据导入导出
2008-09-23 16:47 2730package com.backup; import java ... -
HTML 4.0 语 法 教 学
2008-09-18 16:35 960■ 认识HTML语法 (标签快速导览) ... -
Java反射机制深入研究(转)
2008-09-18 16:31 1299Java反射机制深入研究 ... -
关于一道java程序运行题的结果分析?
2008-09-18 16:25 1524package com.zhaosoft.text; pub ... -
HashSet和TreeSet
2008-09-18 16:22 1506|——SortedSet接口——TreeSet实现类 2S ... -
HashMap,HashTable,HashSet区别
2008-09-18 16:16 7635本文是转贴,著作权归原作者所有! Hash ... -
Java基本概念:集合类(Collection)List/Set/Map... 的区别和联系
2008-09-18 16:14 12131Java基本概念:集合类(Collection) List/S ... -
Spring:总结用XML配置的十二个最佳实践
2008-09-18 13:47 9311.不要使用autowiring Spring可以通过类的 ... -
Spring 系列: Spring 框架简介
2008-09-18 12:14 1082在这由三部分组成的介 ... -
JAVA的日期时间相减问题
2008-09-15 17:46 4570import java.util.Date;import ja ... -
微软的面试题及答案
2008-08-21 16:59 1302第一组 1.烧一根不均匀的绳,从头烧到尾总共需要1 ... -
ECLIPSE快捷键说明
2008-08-21 16:17 2032第一部分 常用快捷键说明 eclipse的使用。Ecli ... -
@SuppressWarnings 详解
2008-08-21 16:05 6079@SuppressWarnings J2SE 提供 ... -
MySql 常用命令
2008-07-15 21:26 771一、连接MYSQL。 格式: ... -
dojo快速入门
2008-07-02 08:32 2917转载请注明出处 http://www.fyting.com,谢 ... -
AJAX架构之Dojo篇
2008-07-02 08:28 1778AJAX架构之Dojo篇 一、前言自去年开始,AJAX一下成了 ...
相关推荐
用Hibernate映射继承关系
hibernate实现继承关系映射的方式有三种,这种方式是将每个类都映射成一张表。
博文链接:https://shaqiang32.iteye.com/blog/201319
Hibernate继承映射+C3P0代码
Hibernate案例与专题-继承映射策略。详细介绍了Hibernate继承映射策略。
那么,这种继承关系在hibernate是如何映射呢? 对于面向对象的程序设计语言而言,继承和多态是两个最基本的概念。hibernate的集成映射可以理解为持久化类之间的继承关系。在上边的例子中,学生集成了人,可以认为...
Hibernate的继承映射 --每个继承层次一张表 -- 每个具体类一张表 -- 每个类一张表
从多种情况介绍Hibernate的继承多态映射关系
hibernate继承关系映射和java反射机制的运用
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
Hibernate继承关系映射.pdf 简单明了
NULL 博文链接:https://quicker.iteye.com/blog/658432
1) 数据库表:一张主表,两张子表,子表共用主表数据,即外键关系 实体层设计:一个父类,两个子类,子类继承父类, 配置文件:只配置父类的映射文件,在其中加入joined-subclass将两个子类实体映射关系添加 2)...
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
博文链接:https://shaqiang32.iteye.com/blog/201321
通过 XML 配置的基本示例 hibernate002:通过注释配置的基本示例 hibernate003:会话方法练习 hibernate004:组件使用示例 hibernate005:单向关系映射示例 hibernate006:双向关系映射示例 hibernate007:示例继承 ...
针对hibernate的继承映射部分做了几个测试的例子,更加直观的阐述了继承映射的几种方式以及对应的表结构方式,文件被分割成3部分 http://download.csdn.net/source/259075 http://download.csdn.net/source/259072 ...