hibernate annotation 自关联问题

fei381895649fei 2010-07-13 04:58:22
一个Organization类
package com.oa.model;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="t_organization")
public class Organization {

private int id;
private String name;
private String sn;
private String description;
private Organization parent;
private Set<Organization> children = new HashSet<Organization>();

@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;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}

@ManyToOne(cascade=CascadeType.REFRESH)
@JoinColumn(name = "parentid")
public Organization getParent() {
return parent;
}
public void setParent(Organization parent) {
this.parent = parent;
}

@OneToMany(cascade={CascadeType.REFRESH,CascadeType.REMOVE},mappedBy="parent")
public Set<Organization> getChildren() {
return children;
}
public void setChildren(Set<Organization> children) {
this.children = children;
}
}
我的测试是
@Test
public void testSave() {

Session session;
try {
session = sessionFactory.openSession();
session.beginTransaction();

Set<Organization> set = new HashSet<Organization>();

Organization org2 = new Organization();
org2.setName("org2");
set.add(org2);

Organization org3 = new Organization();
org3.setName("org3");
set.add(org3);

Organization org4 = new Organization();
org4.setName("org4");
set.add(org4);

Organization org1 = new Organization();
org1.setName("org1");
org1.setChildren(set);
System.out.println(set.size());

session.save(org1);
session.save(org2);
session.save(org3);
session.save(org4);
session.getTransaction().commit();
session.close();
} catch (HibernateException e) {
e.printStackTrace();
}


}
我说明一下,我的Organization里有一个parent 还有一个children ,测试类里,我把org1是父机构,把org2,org3,org4,当为子机构为什么,自关联里,那个parentid总是为空
...全文
130 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
longlonglong25 2010-07-13
  • 打赏
  • 举报
回复
多调试调试~~~不是什么难题。
colin_pxx 2010-07-13
  • 打赏
  • 举报
回复
查询的时候要初始化你关联的类
亲努力啊 2010-07-13
  • 打赏
  • 举报
回复
好多帮顶

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧