首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hibernate将3个实体映射到一个连接表

hibernate将3个实体映射到一个连接表
EN

Stack Overflow用户
提问于 2016-10-31 21:56:02
回答 1查看 180关注 0票数 0

我有3个表skill_checklist、skill_group、skill_master和一个映射表skill_checklist_group_master

该关联是作为

代码语言:javascript
复制
checklist <-- many to many --> Group 
Group <-- many to many --> skills 

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

下面是我的表结构

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

发布于 2016-10-31 22:34:06

使用Hibernate,您可以在一个实体中定义每个datatable。每个实体都有自己的列注释。

这里有一个例子..

代码语言:javascript
复制
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;
   }
}

您如何看到每个实体在他的列中都有自己的注释和自己的获取和设置数据的方法。

如果您使用eclipse或netbeans,他们有自己的插件,用于自动转换实体中的数据表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40343647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档