hibernate自连接--典型的oracle自带emp实现
2024-08-28 21:29:41
用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实体类映射。后来网上查找发现要和自己实现一对多双向关联来实现自连接,这的确是个好方法,也容易理解。
最新文章
- [css] CSS3中的单位
- Unity3D粒子系统 合集
- NOIP2005提高组 过河
- JavaScript:闭包
- hdu 1025 dp 最长上升子序列
- ASP.NET 3.5 中实现发送email电子邮件
- bzoj3007: 拯救小云公主
- Oracle临时表(Temporary Table)
- [ASP.NET 技术点滴] Jquery 前端验证
- poj 3185 The Water Bowls 高斯消元枚举变元
- C# 读书笔记之访问关键字this和base
- Android系统权限和root权限大全
- java导入excel
- Nginx-keepalived+Nginx实现高可用集群
- C++Primer第五版——习题答案详解(七)
- Python复习笔记(四)高阶函数/返回函数/匿名函数/偏函数/装饰器
- c#中的as,is和强转
- 20145118《Java程序设计》 第7周学习总结
- Tornado之链接数据库
- git —— Feature分支
热门文章
- 数据结构&;字符串:可持久化字典树
- Codeforces 671B/Round #352(div.2) D.Robin Hood 二分
- RDLC - 后台代码直接导出Excel/PDF/Word格式
- 【洛谷 P2042】 [NOI2005]维护数列(自闭记第一期)
- Centos服务器ssh免密登录以及搭建私有git服务器
- ubuntu gnome桌面秀
- ubuntu中使用virtualbox遇到Kernel driver not installed (rc=-1908)错误
- Java中基于HotSpot虚拟机的垃圾收集器
- %和format 细说
- $scope作用及模块化解决全局问题