2016-05-12 129 views
0

我有一个从Java与实体更新的MySQL数据库。 我需要包含3列的两个表之间的连接表。休眠加入表

1,从表列从表Owner ("owner_id", "bought")

Bar ("bar_id")

2列可否请你告诉我,如果这是可能的,或者我怎么能意识到这一点。

我想连接表看起来像这样:

'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

请修复这个'Table a','Table b'并指定哪些列应该在连接表中。 –

回答