当前位置:首页 > 开发 > 数据库 > 正文

Hibernate处理一对多关系的三种办法

发表于: 2014-07-22   作者:dashuaifu   来源:转载   浏览次数:
摘要: 多对一单向(数据库设计,多在在多方设计外键)      数据库设计:主键列不可分,联合主键不可有部分依赖,不能存在传递依赖      注解中在多方的类中加入一个"一方"的类,然后在方法之上加上@ManyToOne      XML中在多方的XML中设

多对一单向(数据库设计,多在在多方设计外键)

     数据库设计:主键列不可分,联合主键不可有部分依赖,不能存在传递依赖

     注解中在多方的类中加入一个"一方"的类,然后在方法之上加上@ManyToOne

     XML中在多方的XML中设置<many-to-one name="一方的字段名" column="具体的外键名字">

 

 

注:在数据库中要生成的表要改名字,可以用@Table(name="")

第一种方法(一共会生成三张表,两张实体表,一张关系表)

            多端:(生成一张表,存在一个外键comp_id

@Entity()

public class Flight implements Serializable {

    @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )

    @JoinColumn(name="COMP_ID")

    public Company getCompany() {

        return company;

    }

    ...

}

        一端:

@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)

   publicSet<Student> getStudent() {

      returnstudent;

   }

   publicvoidsetStudent(Set<Student> student) {

      this.student= student;

   }

第二种方法:(效果同第一种一样)

@Entity()

public class Flight implements Serializable {

    @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE}, targetEntity=CompanyImpl.class )

    @JoinColumn(name="COMP_ID")

    public Company getCompany() {

        return company;

    }

    ...

}

 

public interface Company {

    ...

第三种方法

@Entity()

public class Flight implements Serializable {

    @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )

    @JoinTable(name="Flight_Company",

        joinColumns = @JoinColumn(name="FLIGHT_ID"),

        inverseJoinColumns = @JoinColumn(name="COMP_ID")

    )

    public Company getCompany() {

        return company;

    }

    ...

}

Hibernate处理一对多关系的三种办法

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Hibernate关联关系配置(一对多、一对一和多对多) Hibernate关联关系配置 第一种关联关系:一对多(
第一种关联关系:一对多(多对一) "一对多"是最普遍的映射关系,简单来讲就如消费者与订单的关系。
第一种关联关系:一对多(多对一) "一对多"是最普遍的映射关系,简单来讲就如消费者与订单的关系。
Hibernate关联关系配置 第一种关联关系:一对多(多对一) "一对多"是最普遍的映射关系,简单来讲就
Hibernate关联关系配置(一对多、一对一和多对多) Hibernate关联关系配置 第一种关联关系:一对多(
  对于一对多的关联关系,通常的做法就是在多方映射的数据表中增加一个外键字段,用以保持一方的
  对于一对多的关联关系,除去上一单讲的在多方对应的数据表中增加一个外键字段,用来标识一方外
  对于一对多的关联关系方式还有一种比较特殊的做法就是将多方视为一方的组合元素,这样多方并不
关联关系映射,是对象映射关系中相对复杂的一种,但也是用处最多的一种,因为数据中的表不可能都是
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibern
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号