2016-10-31 29 views
0

我有3个表skill_checklist,skill_group,skill_master和映射表skill_checklist_group_masterHibernate映射3个实体一个连接表

该协会是为

checklist <-- many to many --> Group 
Group <-- many to many --> skills 

有人能告诉我如何管理这3 hibernate中的表关联与注释?

下面是我的表结构

CREATE TABLE public.skill_checklist 
(
    id bigint NOT NULL DEFAULT nextval('skill_checklist_id_seq'::regclass), 
    name character varying(256) NOT NULL, 
    description character varying(500) NOT NULL, 
    CONSTRAINT "PK_SKILL_CHECKLIST_ID" PRIMARY KEY (id) 
) 

CREATE TABLE public.skill_group 
(
    id bigint NOT NULL DEFAULT nextval('skill_group_id_seq'::regclass), 
    name character varying(256) NOT NULL, 
    description character varying(500) NOT NULL, 
    CONSTRAINT "PK_SKILL_GROUP_ID" PRIMARY KEY (id) 
) 

CREATE TABLE public.skill_master 
(
    id bigint NOT NULL DEFAULT nextval('skill_master_id_seq'::regclass), 
    name character varying(256) NOT NULL, 
    description character varying(500) NOT NULL, 
    CONSTRAINT "PK_SKILL_MASTER_ID" PRIMARY KEY (id) 
) 

CREATE TABLE public.skill_checklist_group_master 
(
    checklist_id bigint NOT NULL, 
    group_id bigint NOT NULL, 
    skill_id bigint NOT NULL, 
    group_order bigint NOT NULL, 
    skill_order bigint NOT NULL, 
    CONSTRAINT "FK_MAP_CHECKLIST_CHECKLIST_ID" FOREIGN KEY (checklist_id) 
     REFERENCES public.skill_checklist (id) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION, 
    CONSTRAINT "FK_MAP_GROUP_GROUP_ID" FOREIGN KEY (group_id) 
     REFERENCES public.skill_group (id) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION, 
    CONSTRAINT "FK_MAP_SKILL_SKILL_ID" FOREIGN KEY (skill_id) 
     REFERENCES public.skill_master (id) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION 
) 

我没有用Hibernate经验,所以编码的例子一定会帮助我在这里。使用最新版本的hibernate。

回答

0

使用Hibernate,您可以定义实体中的每个数据表。每个实体都有自己的专栏注释。

下面是一个例子..

import javax.persistence.*; 

@Entity 
@Table(name = "EMPLOYEE") 
public class Employee { 
    @Id @GeneratedValue 
    @Column(name = "id") 
    private int id; 

    @Column(name = "first_name") 
    private String firstName; 

    @Column(name = "last_name") 
    private String lastName; 

    @Column(name = "salary") 
    private int salary; 

    public Employee() {} 
    public int getId() { 
     return id; 
    } 
    public void setId(int id) { 
     this.id = id; 
    } 
    public String getFirstName() { 
     return firstName; 
    } 
    public void setFirstName(String first_name) { 
     this.firstName = first_name; 
    } 
    public String getLastName() { 
     return lastName; 
    } 
    public void setLastName(String last_name) { 
     this.lastName = last_name; 
    } 
    public int getSalary() { 
     return salary; 
    } 
    public void setSalary(int salary) { 
     this.salary = salary; 
    } 
} 

怎么可以看到每个实体都有自己拥有的注释和他拥有的GET方法和他的专栏设置数据..

如果你使用Eclipse或netbeans,他们有他自己的插件,用于在实体中自动转换数据表..

+0

你一直没有帮助...- 1为您的答案。我遇到了关联问题! – coder310

+0

好的..但是,你有你的实体创建?你可以把你的实体代码? –

+0

如果您需要将实体与其他实体关联起来。你需要一个JoinColumn注释..类似这样 –