简体   繁体   English

复合键的Jpa映射

[英]Jpa mapping of composite key

Hi Below is my tables and its desc. 嗨,下面是我的桌子和它的desc。

Employee:
emp_Id primary_key
emp_Name 
emp_Address

Address:
emp_id -- foreign key of employee table
addres_type
type_id

AddressType:
Type_id  -- foreign key of Address table
Type
Desc

How can i create JPA entities with this relationship. 如何使用此关系创建JPA实体。

Thanks in advance 提前致谢

you'd better use AbstractPersistable to generate the id : 你最好使用AbstractPersistable来生成id:

so Address and AddressType will have a primary_key also 所以Address和AddressType也会有一个primary_key

1-Employee 1-雇员

 @Entity
    @Table(name = "Employee ")
    public class Employee extends AbstractPersistable<Long>{

// Employee here have a generated id from AbstractPersistable

        private static final long serialVersionUID = 1L;

        @Column(name = "emp_Name ")
        private String emp_Name ;


        @ManyToOne(optional = true)
        @JoinColumn(name = "emp_Address")
        private Address emp_Address;
    }

2-Address 2,地址

 @Entity
    @Table(name = "Address")
    public class Address extends AbstractPersistable<Long>{

    //Address here have a generated id from AbstractPersistable

        private static final long serialVersionUID = 1L;

//you can delete this column because you have already the ManyToOne in Employee 
        @ManyToOne(optional = true)
        @JoinColumn(name = "emp_id")
        private Employee emp_id;
//*****************

        @Column(name = "addres_type")
        private String addres_type;


        @ManyToOne(optional = true)
        @JoinColumn(name = "Type_id")
        private AddressType Type_id  ;
    }

3-AddressType 3地址类型

  @Entity
        @Table(name = "AddressType")
        public class AddressType extends AbstractPersistable<Long>{

       //AddressType here have a generated id from AbstractPersistable

            private static final long serialVersionUID = 1L;



            @Column(name = "Type")
            private String Type;

            @Column(name = "Desc")
            private String Desc;
        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM