Hibernate/JPA 单表一对多关系映射
2007-11-04 13:44
543 查看
这里以组织机构为例:
表结构
实体类:Org
import org.hibernate.Session;
import org.junit.Before;
import org.junit.Test;
import commons.utils.HibernateUtil;
public class TestOrg {
@Before
private void test1() {
Session session = HibernateUtil.getCurrentSession();
session.getTransaction().begin();
Org o, o1, o2, o11, o12;
o = new Org("org");
o.setParentId((Org) session.get(Org.class, new Long(-100)));
o1 = new Org("-org1");
o2 = new Org("-org2");
o11 = new Org("--org11");
o12 = new Org("--org12");
o11.setParentId(o1);
o12.setParentId(o1);
o1.setParentId(o);
o2.setParentId(o);
session.save(o);
session.save(o1);
session.save(o2);
session.save(o11);
session.save(o12);
session.getTransaction().commit();
session.close();
}
@Test
private void test2() {
Session session = HibernateUtil.getCurrentSession();
session.getTransaction().begin();
Org o = (Org) session.createQuery("from Org o where o.parentId is null").uniqueResult();
System.out.println(o.getOrgName() + "-" + o.getOrgId());
Org o1 = new Org("-org3");
o1.setParentId(o);
session.save(o1);
session.getTransaction().commit();
session.close();
}
}
表结构
字段 | 类型 | 备注 |
OrgId | NUMBER(10) | 主键 |
OrgName | Varchar2(128) | 组织机构名称 |
ParentId | NUMBER(10) | 父机构ID,外键参考OrgId |
import org.hibernate.Session;
import org.junit.Before;
import org.junit.Test;
import commons.utils.HibernateUtil;
public class TestOrg {
@Before
private void test1() {
Session session = HibernateUtil.getCurrentSession();
session.getTransaction().begin();
Org o, o1, o2, o11, o12;
o = new Org("org");
o.setParentId((Org) session.get(Org.class, new Long(-100)));
o1 = new Org("-org1");
o2 = new Org("-org2");
o11 = new Org("--org11");
o12 = new Org("--org12");
o11.setParentId(o1);
o12.setParentId(o1);
o1.setParentId(o);
o2.setParentId(o);
session.save(o);
session.save(o1);
session.save(o2);
session.save(o11);
session.save(o12);
session.getTransaction().commit();
session.close();
}
@Test
private void test2() {
Session session = HibernateUtil.getCurrentSession();
session.getTransaction().begin();
Org o = (Org) session.createQuery("from Org o where o.parentId is null").uniqueResult();
System.out.println(o.getOrgName() + "-" + o.getOrgId());
Org o1 = new Org("-org3");
o1.setParentId(o);
session.save(o1);
session.getTransaction().commit();
session.close();
}
}
相关文章推荐
- Hibernate之jpa实体映射的三种继承关系
- Hibernate中使用JPA(注解)配置对象关系映射
- Hibernate,JPA 对象关系映射之关联关系映射策略
- Hibernate,JPA 对象关系映射之关联关系映射策略
- Hibernate之jpa实体映射的三种继承关系
- Hibernate,JPA 对象关系映射之简单映射策略
- Hibernate之jpa实体映射的三种继承关系
- hibernate jpa关系映射
- Hibernate实体关系映射(OneToMany、ManyToOne双边)——完整实例
- 持久化API(JPA)系列(六)实体关系映射(ORM)之映射类型
- 精通Hibernate之映射继承关系五
- Hibernate(三)——框架中的关系映射
- ssh学习:hibernate关系映射(3)
- hibernate实体关系映射
- Hibernate制图(两)——许多-于─关系映射
- hibernate4之一对一关系映射(二)
- hibernate之关系映射方式
- Hibernate的七种映射关系之七种关联映射(二)
- Hibernate框架学习-映射关系之一对多与多对一
- Hibernate(myeclipse创建Hibernate配置文件、创建对象-关系映射文件)