美文网首页
【JPA】联表的增删改查(三)自联表(many to one)

【JPA】联表的增删改查(三)自联表(many to one)

作者: 如雨随行2020 | 来源:发表于2022-01-08 09:04 被阅读0次

@[toc]

引入

以Menu为例
每个菜单都有一个父菜单pid字段表示,同时还有许多个子菜单,所以Menu与自己属于many to one 和 one to many的关系

实体类

@Entity

public class Menu implements Serializable {
    @Id
    @GeneratedValue
    private long id;
    @Column(nullable = false)
    private String name;
    @OneToMany(targetEntity = Menu.class, fetch = FetchType.LAZY)
    @JoinColumn(name = "pid")
    @JsonIgnore
    private List<Menu> childrenMenu;
    @Column(name = "pid")
    private long pid;
    private static final long serialVersionUID = 1L;
}

用@OneToMany注释子菜单字段,这里fetch=FetchType.LAZY没用
这里@JoinColumn name属性值和之前的不同,这里pid是数据表里面的字段。

操作

  1. 添加菜单
    public boolean addMenu(long pid, String name) {
        if (menuRepository.findOne(pid) == null) {
            return false;
        }
        Menu menu = new Menu();
        menu.setName(name);
        menu.setPid(pid);
        menuRepository.save(menu);
        return true;
    }
  1. 删除菜单
    public boolean deleteMenu(long id) {
        if(findChildrenMenu(id).size() > 0) {
            return false;
        }
        menuRepository.delete(id);
        return true;
    }
  1. 查询子菜单列表
    public List<Menu> findChildrenMenu(long id) {
        // TODO Auto-generated method stub
        return menuRepository.findByPid(id);
    }
  1. 查询父菜单
    先查父菜单id,再通过id获取父菜单信息

相关文章

  • 【JPA】联表的增删改查(三)自联表(many to one)

    @[toc] 引入 以Menu为例每个菜单都有一个父菜单pid字段表示,同时还有许多个子菜单,所以Menu与自己属...

  • 【JPA】联表的增删改查(一)many to many

    以user和role为例,用户可以有多个角色,一个角色也可以有用户。用户和角色是多对多的关系,那么我们还需要一张u...

  • 【JPA】联表的增删改查(二)many to one和one t

    以user和organization为例一个用户只能隶属于一个机构,一个机构下有多个用户user和organiza...

  • 2018-06-23 (数据库)

    /*表的增删改查增创建删除删除整张表改改变表名改变列名改变列类型查查询表结构查询表信息表数据的增删改查增插入指定列...

  • Jpa 联表查询

    原文链接:https://blog.csdn.net/qq_40693828/article/details/95...

  • DBFlow:关系(Relationships)

    关系 在DBFlow 中用@Table描述的表,我们可以使用1-1, 1-many, many-to-many来联...

  • 常用方法

    A alias 联表查询方式 一、table() 二、联表查询(内联、左联、右联、全联)的语法 表1结构--- ...

  • SQL语句

    数据库的增删改查 数据表的增删改查 表内记录的增删改查

  • mysql数据库的基本操作

    一、基本增删改查二、创建索引的几种方式三、单表查询四、连表查询 一、基本增删改查 1.数据库的增删改查 show ...

  • 增删改

    对于表中的操作,就是增删改查,查内容较多,这里先说增删改。 1.增(insert或者load) 即插入数据,多行插...

网友评论

      本文标题:【JPA】联表的增删改查(三)自联表(many to one)

      本文链接:https://www.haomeiwen.com/subject/ojyraltx.html