java 实体类注解配置问题

我有一个机构实体类,里面有id,orgnName(机构名),parentId(父级机构的id)三个属性
问要如何配置id和parentId的多对一关系?
表里面的数据如下形式:
ID ORGNNAME PARENTID
1 机构 1 0

2 机构 1—1 1(存的是 机构1 的id )
3 机构 1—2 1(存的是 机构1 的id )
求高手解答,不,求 ‘大神’ 解答,跪求!!

2个回答

一对多注解标识在表示多的集合字段上,多对一的注解标识在一的属性上,你定义的实体类本质是自关联的一对多的类。
按照你描述的需求,使用注解,实例代码如下:

import java.util.ArrayList;
import java.util.List;

public class Organization {
    private Integer id;
    private String orgnName;

    // 父级机构(即上级机构)
    private Organization parent;
    // 子机构(即所有下级机构)
    private List<Organization> children = new ArrayList<Organization>();

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Column(nullable = false, unique = true)  
    public String getOrgnName() {
        return orgnName;
    }

    public void setOrgnName(String name) {
        this.orgnName = name;
    }

    @ManyToOne(fetch = FetchType.LAZY)  
    @JoinColumn(name = "parentId")  
    public Organization getParent() {
        return parent;
    }

    public void setParent(Organization parent) {
        this.parent = parent;
    }

    @OneToMany(targetEntity = Menu.class, cascade = { CascadeType.ALL }, mappedBy = "parentMenu")  
    @Fetch(FetchMode.SUBSELECT)  
    @OrderBy("id")  
    public List<Organization> getChildren() {
        return children;
    }

    public void setChildren(List<Organization> children) {
        this.children = children;
    }

}

Dzq_Boyka
Dzq_Boyka 回复毕小宝: 另外,这个@OneToMany()哪里里面的不是Menu.class吧?应该是Organization.class吧?加上mappedBy应该是="什么呢"
4 年多之前 回复
Dzq_Boyka
Dzq_Boyka 回复毕小宝: 呵呵,别谦虚了!再问一个问题,private List<Organization> children = new ArrayList<Organization>();这里ArrayList,new 出来或者不new有什么区别吗?
4 年多之前 回复
wojiushiwo945you
毕小宝 回复Dzq_Boyka: 我不是大神啊,这个很简单的自关联的例子,碰巧项目中遇到过而已啊。
4 年多之前 回复
Dzq_Boyka
Dzq_Boyka 回复毕小宝: 我需要查出机构id,机构名,上级机构名
4 年多之前 回复
Dzq_Boyka
Dzq_Boyka 回复毕小宝: 怎么说,大神,收下我的膝盖。我服 !!!我再追加一个问题,到时候hql语句该怎么写?
4 年多之前 回复
Dzq_Boyka
Dzq_Boyka 真的,我彻底服,求交往!
4 年多之前 回复
Dzq_Boyka
Dzq_Boyka 怎么说,大神,收下我的膝盖。我服
4 年多之前 回复
wojiushiwo945you
毕小宝 这个是参考菜单、子菜单的实体设计的代码,@OneToMany的信息没有修正为Oraganization.class,mappedBy为parent(类的管理属性名称)。
4 年多之前 回复

没明白什么意思,如果说怎么构造这个实体类

 class Organization{
     private id;
         private String name;
         private List<Integer> parentIds;//如果父级机构数目不确定就用List,自动增长
 }
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问