2012-11-22 167 views
0

ManyToMany這樣的映射:Hibernate的多對多映射

@XmlTransient 
    @ManyToMany(cascade = {CascadeType.ALL}) 
    @JoinTable(name = "users_clients", 
      joinColumns = {@JoinColumn(name = "user_id")}, 
      inverseJoinColumns = @JoinColumn(name = "client_id")) 
    public List<Client> getClients() { 
     return clients; 
    } 

而另一面:

@ManyToMany(mappedBy = "clients") 
    private List<User> users = new ArrayList<User>(); 

所以你可以看到我有JoinColumn name = user_idclient_id但冬眠MAPPS與名稱userS_id此列clientS_id作爲它們的表名。爲什麼會發生?有什麼建議麼?

回答

0

嘗試在您的@JoinColumn註釋中指定列名稱。你也失蹤括號圍繞inverseJoinColumns

@JoinTable(name = "users_clients", 
     joinColumns = { 
     @JoinColumn(name = "user_id", referencedColumnName="user_id")}, 
      inverseJoinColumns = { 
     @JoinColumn(name = "client_id", referencedColumnName="client_id")}) 
+0

我做直像你這樣的表現,但它仍然有名字userS_id和roleS_id映射。也許那種黑魔法? –