用S2SH三大框架整合,用了oracle自带的表emp,实现了自连接。

pojo类:

public class Emp implements java.io.Serializable {

	// Fields

	private Short empno;
private Dept dept;
private String ename;
private String job;
private Short mgr;
private Date hiredate;
private Double sal;
private Double comm; //添加一个需要的属性--上级名称-->持有自己的引用(上级也来自员工表)
//必须是一对多双向 因为上级也出自员工表 一个上级同样是一个员工 他可能有多个下级
private Emp empmgr;
private Set<Emp> emps = new HashSet<Emp>(); //get and set.....
}

Emp.hbm.xml部分:

<hibernate-mapping>
<class name="com.wepull.pojo.Emp" table="EMP" schema="SCOTT" >
<id name="empno" type="java.lang.Short">
<column name="EMPNO" precision="4" scale="0" />
<generator class="increment"></generator>
</id>
<many-to-one name="dept" class="com.wepull.pojo.Dept" fetch="select"
lazy="false">
<column name="DEPTNO" precision="2" scale="0" />
</many-to-one> <!-- 自连接配置 手动增加部分 缺一不可 -->
<many-to-one name="empmgr" class="com.wepull.pojo.Emp"
update="false" insert="false" >
<column name="mgr"></column>
</many-to-one> <set name="emps" cascade="save-update" inverse="true">
<key column="mgr"></key>
<one-to-many class="com.wepull.pojo.Emp"/>
</set> <property name="ename" type="java.lang.String">
<column name="ENAME" length="10" />
</property>
<property name="job" type="java.lang.String">
<column name="JOB" length="9" />
</property>
<property name="mgr" type="java.lang.Short">
<column name="MGR" precision="4" scale="0" />
</property>
<property name="hiredate" type="java.util.Date">
<column name="HIREDATE" length="7" />
</property>
<property name="sal" type="java.lang.Double">
<column name="SAL" precision="7" />
</property>
<property name="comm" type="java.lang.Double">
<column name="COMM" precision="7" />
</property>
</class>
</hibernate-mapping>

其他部分无需过多阐述,既然能用框架了,别的都是小问题了,个人感觉自连接是个新知识点,所以在此记下以备所需。起初是想单单通过修改HQL语句来实现自连接,可是没有成功,自己也认定不能成功,因为查出的东西无法和pojo实体类映射。后来网上查找发现要和自己实现一对多双向关联来实现自连接,这的确是个好方法,也容易理解。

hibernate自连接--典型的oracle自带emp实现的更多相关文章

  1. (转)oracle 存储过程 带游标作为OUT参数输出

    (转)oracle 存储过程 带游标作为OUT参数输出 存储过程返回OUT参数的游标 例子. 包中带过程 要自己定义一个type [cur_name] is ref cursor游标,返回的时候就直接 ...

  2. Oracle 生成Guid;Oracle 生成多个Guid;Oracle 生成带''-"的Guid

    Oracle 生成Guid select sys_guid() from dual Oracle 生成多个Guid Oracle 生成带''-"的Guid , ) , ) || '-' || ...

  3. 介绍Oracle自带的一些ASM维护工具 (kfod/kfed/amdu)

    1.前言 ASM(Automatic Storage Management)是Oracle主推的一种面向Oracle的存储解决方式,它是一个管理卷组或者文件系统的软件.眼下已经被RAC环境广泛使用,可 ...

  4. Hibernate 连接MySQL/SQLServer/Oracle数据库的hibernate.cfg.xml文件

    用Hibernate配置连接数据库可以方便我们对POJO的操作,节省了很多时间和代码.下面就分别说明连接不同数据库需要在hibernate.cfg.xml做的配置. 需要数据库驱动包可以点击这里下载: ...

  5. 通过数据库中的表,使用 MyEclipse2017的反向生成工具-->hibernate反转引擎引擎(MyEclipse2017自带的插件) 来反转生成实体类和对应的映射文件

    通过数据库中的表,使用 MyEclipse2017的反向生成工具-->hibernate反转引擎引擎(MyEclipse2017自带的插件) 来反转生成实体类和对应的映射文件   文章目录 Ja ...

  6. 【ASM】介绍Oracle自带的一些ASM维护工具 (kfod/kfed/amdu)

    转自:http://blog.csdn.net/wenzhongyan/article/details/47043253 非常感谢作者的文章,很有价值!至此转载,非常感谢 1.前言 ASM(Autom ...

  7. oracle中带参存储过程的使用

    Oracle中存储过程带参分为:输入参数(in)和输出参数(out) 例如: create or replace procedure out_test(v_user in emp.user_name% ...

  8. 【转】通过Hibernate将数据 存入oracle数据库例子

    一. Hibernate介绍 Hibernate是基于对象/关系映射(ORM,Object/Relational Mapping)的一个解决方案.ORM方案的思想是将对象模型表示的对象映射到关系型数据 ...

  9. 懒要懒到底,能自动的就不要手动,Hibernate正向工程完成Oracle数据库到MySql数据库转换(含字段转换、注释)

    需求描述 需求是这样的:因为我们目前的一个老项目是Oracle数据库的,这个库呢,数据库是没有注释的,而且字段名和表名都是大写风格,比如 在代码层面的po呢,以前也是没有任何注释的,但是经过这些年,大 ...

随机推荐

  1. 11.nginx upload module + python django 后台 实现视频上传与切片

    1.需求:支持视频上传并切片,支持通过m3u8文件播放 2.视频切片的上一节已经谈过,这一节主要是视频上传的处理 第一步:upload-module模块安装 -----------首先下载upload ...

  2. [Luogu 2805] NOI2009 植物大战僵尸

    这题是个比较经典的最大权闭合子图,可以建图转化为最小割问题,再根据最大流最小割定理,采用任意一种最大流算法求得. 对于每个点,如果点权w为正,则从源点到这个点连一条边权为w的有向边:否则如果w为负则从 ...

  3. struts2之OGNL用法

    浅析OGNL OGNL是Object-GraphNavigation Language的缩写,是一种功能强大的表达式语言 通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对 ...

  4. 【BZOJ2693】jzptab [莫比乌斯反演]

    jzptab Time Limit: 10 Sec  Memory Limit: 512 MB[Submit][Status][Discuss] Description   求 Input 第一行一个 ...

  5. Bzoj4873 [SXOI2017]寿司餐厅

    Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 64  Solved: 45 Description Kiana最近喜欢到一家非常美味的寿司餐厅用餐.每 ...

  6. HDU 1159 Common Subsequence (dp)

    题目链接 Problem Description A subsequence of a given sequence is the given sequence with some elements ...

  7. bzoj 1296 DP

    对于每一行做DP预处理,w[i][j]代表这一行前i个刷j次的最大价值,那么w[i][j]=max(w[i][j],w[k][j-1]+sum[k+1][i]),sum[i][j]为i-j段刷一次最多 ...

  8. Select 使用不当引发的core,你应该知道的

    排查一个死机问题,搞了好几天时间,最终确定原因:最终确定问题原因,在此分享一下: 第一步:常规根据core文件查看栈信息,gdb –c core xxxx 如下rip不正确,指令地址错乱,栈信息已破坏 ...

  9. Spring Cloud Eureka服务注册源码分析

    Eureka是怎么work的 那eureka client如何将本地服务的注册信息发送到远端的注册服务器eureka server上.通过下面的源码分析,看出Eureka Client的定时任务调用E ...

  10. Linux简介——(一)

    1. 常见操作系统 - 服务端操作系统 : linux.unix.windows server - 单机操作系统 : windows(dos .ucdos.win95.win98.win2000.xp ...