2016-05-12 5 views
0

私は、Entitiesを使ってJavaから更新されたMySQLデータベースを持っています。 3つの列を含む2つのテーブルの間に結合テーブルが必要です。テーブルからHibernate Join Table

1列Bar ("bar_id")

2テーブルから列Owner ("owner_id", "bought")

それは私がそれを実現することができるか可能であるかどうかを教えてくださいでした。

'bar_id' | 'owner_id' | 'bought' 
-------------------------------- 

BaseEntity.java

@MappedSuperclass 
public class BaseEntity { 
    private int id; 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    public int getId(){ return this.id; } 
    public void setId(int id){ this.id = id; } 
} 

Bar.java

@Entity 
@Table(name="bar") 
public class Bar extends BaseEntity{ 

    private String name; 
    private String bought; 
    private List<Fan> fan; 
    private List<Owner> owner; 

    @Column(name="name") 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 

    @Column(name="bought") 
    public String getBought() { 
     return bought; 
    } 
    public void setBought(String bought) { 
     this.bought = bought; 
    } 

    @ManyToMany(mappedBy="bar", targetEntity=Owner.class) 
    public List<Owner> getOwner() { 
     return owner; 
    } 
    public void setOwner(List<Owner> owner) { 
     this.owner = owner; 
    } 

    @ManyToMany 
    @JoinColumn(name="fan") 
    public List<Fan> getFan() { 
     return fan; 
    } 
    public void setFan(List<Fan> fan) { 
     this.fan = fan; 
    } 
} 

Owner.java

@Entity 
@Table(name="owner") 
public class Owner extends BaseEntity{ 

    private String firstname; 
    private String lastname; 
    private String birthday; 
    private java.sql.Date bought; 
    private List<Bar> bar; 

    @Column(name="firstname") 
    public String getFirstname() { 
     return firstname; 
    } 
    public void setFirstname(String firstname) { 
     this.firstname = firstname; 
    } 

    @Column(name="lastname") 
    public String getLastname() { 
     return lastname; 
    } 
    public void setLastname(String lastname) { 
     this.lastname = lastname; 
    } 

    @Column(name="birthday") 
    public String getBirthday() { 
     return birthday; 
    } 
    public void setBirthday(String birthday) { 
     this.birthday = birthday; 
    } 

    @Column(name="bought") 
    public java.sql.Date getBought() { 
     return bought; 
    } 
    public void setBought(java.sql.Date bought) { 
     this.bought = bought; 
    } 

    @ManyToMany 
    @JoinColumn(name="bar") 
    public List<Bar> getBar() { 
     return bar; 
    } 
    public void setBar(List<Bar> bar) { 
     this.bar = bar; 
    } 
} 

私はこのようになりますテーブルに参加したいです

+1

エンティティを追加してください。 –

+0

エンティティを追加しました –

+0

この 'テーブルa'、'テーブルb'を修正し、正確にどのカラムを結合テーブルに入れるべきかを指定してください。 –

答えて

1

@JoinTableアノテーションを使用して結合テーブルを作成できます。

これを実現する方法について説明しているこの記事をご覧ください。

How to create join table with JPA annotations?

+0

彼は '@ JoinTable'で追加の列を必要とします。 –