您的位置:首页 > 其它

Hibernate/JPA 单表一对多关系映射

2007-11-04 13:44 543 查看
这里以组织机构为例:

表结构

字段类型备注
OrgIdNUMBER(10)主键
OrgNameVarchar2(128)组织机构名称
ParentIdNUMBER(10)父机构ID,外键参考OrgId
实体类: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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: