关于hibernate 注解 OnetoOne 或 ManyToOne 写法

来源:互联网 发布:成都app软件开发 编辑:程序博客网 时间:2024/05/16 06:57

关于hibernate 注解 OnetoOne 或 ManyToOne 写法

  1. 当主表中有子表的外键。
    这种相对简单,直接把主表中子表的id换成子表的实体即可
    /*菜品表主键/
    /**子表表主键*///  private java.util.Date alDinningCookId;     /**替换成子表的实体或者子表的list 取决于一对一 还是一对多/    private AlDinningCookInfoEntity alDinningCookInfoEntity;    @OneToOne    @JoinColumn(name="al_dinning_cook_id")    public AlDinningCookInfoEntity getAlDinningCookInfoEntity() {        return alDinningCookInfoEntity;    }    public void setAlDinningCookInfoEntity(            AlDinningCookInfoEntity alDinningCookInfoEntity) {        this.alDinningCookInfoEntity = alDinningCookInfoEntity;    }
  1. 主子关联,主表的主键是子表的关联字段
    这种相对复杂,需要在两个实体中都标明实体关系
    这里有店铺表和店铺详情表,店铺表的为主表,该表的主键出现在它子表店铺详情表中
    首先在子表中声明关联主表的实体
    /**店铺id*/    //private String alShopId;    /**店铺id*/    private AlShopEntity alShopEntity ;    @OneToOne      @JoinColumn(name="Al_SHOP_ID",insertable=true,unique=true)      public AlShopEntity getAlShopEntity() {        return alShopEntity;    }    public void setAlShopEntity(AlShopEntity alShopEntity) {        this.alShopEntity = alShopEntity;    }

然后在主表中声明关联的子表

    /**店铺id*/    private AlShopDetailEntity alShopDetailEntity;//mappedBy="alShopEntity" 写在子表中的实体名称    @OneToOne(mappedBy="alShopEntity",fetch=FetchType.EAGER)      public AlShopDetailEntity getAlShopDetailEntity() {        return alShopDetailEntity;    }    public void setAlShopDetailEntity(AlShopDetailEntity alShopDetailEntity) {        this.alShopDetailEntity = alShopDetailEntity;    }
0 0
原创粉丝点击