这里以组织机构为例:
表结构
字段 | 类型 | 备注 |
OrgId | NUMBER(10) | 主键 |
OrgName | Varchar2(128) | 组织机构名称 |
ParentId | NUMBER(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();
}
}