Hibernate学习笔记_关系映射_树状结构练习
2014-12-05 13:35
555 查看
1 树状结构的设计(至关重要)
a) 在同—个类中使用One2Many和Many20ne
a) 在同—个类中使用One2Many和Many20ne
@Entity public class Org { private int id; private String name; private Set<Org> children=new HashSet<Org>(); private Org parent; @Id @GeneratedValue 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; } @OneToMany(mappedBy="parent",cascade={CascadeType.ALL},fetch=FetchType.EAGER) public Set<Org> getChildren() { return children; } public void setChildren(Set<Org> children) { this.children = children; } @ManyToOne() @JoinColumn(name="parentID") public Org getParent() { return parent; } public void setParent(Org parent) { this.parent = parent; } }
@Test public void testSave() { Org o = new Org(); o.setName("总公司"); Org o1 = new Org(); o1.setName("分公司1"); Org o2 = new Org(); o2.setName("分公司2"); Org o11 = new Org(); o11.setName("分公司1下部门1"); Org o12 = new Org(); o12.setName("分公司1下部门2"); o.getChildren().add(o1); o.getChildren().add(o2); o1.getChildren().add(o11); o1.getChildren().add(o12); o11.setParent(o1); o12.setParent(o1); o1.setParent(o); o2.setParent(o); Session session = sessionFactory.openSession(); session.beginTransaction(); session.save(o); session.getTransaction().commit(); session.close(); } @Test public void testLoad() { testSave(); Session session = sessionFactory.openSession(); session.beginTransaction(); Org org=(Org)session.load(Org.class, 1); print(org,0); session.getTransaction().commit(); session.close(); } private void print(Org org,int level) { String str=""; for(int i=0;i<level;i++){ str+="----"; } System.out.println(str+org.getName()); for (Org o:org.getChildren()){ print(o,level+1); } }
相关文章推荐
- 【Hibernate学习笔记】映射聚合关系和组合关系
- Hibernate学习笔记-Hibernate关系映射
- Hibernate学习笔记(五)----关系映射
- [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系
- Hibernate学习笔记 2 - 关系映射配置
- Hibernate学习笔记-------继承关系映射
- 【Hibernate学习笔记】映射继承关系
- Hibernate学习笔记:继承映射之每个类继承结构一张表
- Hibernate学习之 -- 使用Middlegen-Hibernate-r5创建oracle10g的table的hibernate映射文件,Hibernate学习笔记三 ---持久化类和关系数据
- Hibernate学习笔记 3 - 关系映射配置(基于注解)
- openerp学习笔记 对象间关系【多对一(一对一)、一对多(主细结构)、多对多关系、自关联关系(树状结构)】
- Hibernate学习笔记----映射继承关系
- openerp学习笔记 对象间关系【多对一(一对一)、一对多(主细结构)、多对多关系、自关联关系(树状结构)】
- Hibernate学习笔记_关系映射_学生_课程_分数
- openerp学习笔记 对象间关系【多对一(一对一)、一对多(主细结构)、多对多关系、自关联关系(树状结构)】
- Hibernate学习笔记_关系映射
- Hibernate学习笔记-----关系映射(2)单向1-1关联
- openerp学习笔记 对象间关系【多对一(一对一)、一对多(主细结构)、多对多关系、自关联关系(树状结构)】
- [原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword 与 解析,.环境搭建,hibernate.cfg.xml文件及参数说明,持久化类,对象-关系映射文件.hbm.xml,Hibernate API (Configuration 类,SessionFactory 接口,Session 接口,Transaction(事务))
- openerp学习笔记 对象间关系【多对一(一对一)、一对多(主细结构)、多对多关系、自关联关系(树状结构)】