zoukankan      html  css  js  c++  java
  • 一对多 等关系映射

    简单的说些关于@oneToMany 自己理解的知识:

    1,注解配置到字段或者get方法上;
    2,如果使用了mappBy 是表示双向关系映射:即 查询A表会查询B表,查询B表也会查询A表,使用了mappBy那么A表和B表都需要配置
    3,后面是Many结尾(如OneToMany)则默认会懒加载,而设置 fetch = FetchType.EAGER 就是使用立即加载方式
    4,@JoinColumn是外键
    /**
         * 这里配置关系,并且确定关系维护端和被维护端。mappBy表示关系被维护端,只有关系端有权去更新外键。
         * 这里还有注意OneToMany默认的加载方式是赖加载。当看到设置关系中最后一个单词是Many,
         * 那么该加载默认为懒加载
         */
        @OneToMany(cascade = { CascadeType.REFRESH, CascadeType.PERSIST,CascadeType.MERGE, CascadeType.REMOVE } ,fetch = FetchType.EAGER)
        @JoinColumn(name="adviceId")


     简单的一对多查询,如果是第三方表建立的关系,只需要一个@OneToMany就行了,例如:

    @Entity
    public class Company {
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Long id;
        private String name;
    
        @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
        private List<Employee> employee=new ArrayList<>();

    注意3点,

    第一:fetch = FetchType.EAGER  设置立即查询
    第二:集合List属性名要和集合对象名一致, employee;不能用employeeList 等名称
    第三:由于设置的立即查询,那么第三方关系表的属性上如果是column_id的表字段,则必需指定@column(name="column_id")

    简单的一对多查询,如果只是涉及到二张表的话,需要@oneToMany 以及 @joinColumn 注解即可
  • 相关阅读:
    智能指针之第二印象
    网易实习笔试真题C/C++
    map,hash_map和unordered_map 实现比较
    斐波那契堆(一)之 图文解析 和 C语言的实现
    二项堆(一)之 图文解析 和 C语言的实现
    寻找最小的k个数
    P、NP、NP-Complete、NP-hard问题
    网易有道笔试:求连通图的割点(关节点)
    块设备的读流程分析
    不相交集(The Disjoint Set ADT)
  • 原文地址:https://www.cnblogs.com/dwb91/p/6548774.html
Copyright © 2011-2022 走看看