【发布时间】:2013-10-02 18:34:55
【问题描述】:
有谁知道如何通过以下简单示例指定特定的列名?
@Entity
public class Role {
@Id
@GeneratedValue
@Column(name="id")
private final Integer id;
...
}
@Entity
public class User {
@Id
@GeneratedValue
@Column(name="id")
private final Long id;
@ElementCollection
@CollectionTable(name = "user_roles" joinColumns = { @JoinColumn(name = "user_id")})
private final Set<Role> roles;
...
}
这令人沮丧地产生了一个名为“user_roles”的表和字段名称:“user_id”和“roles_id”。
为什么是“roles_id”而不是“role_id”,如何将其更改为“role_id”?
值得我使用 JPA 2.0、MySQL 和 Hibernate。我要添加的数据是正确添加的,所以这只是一个口味问题。
编辑:
以下可能有点 JPA 1.0'ish,但它可以根据需要工作。
@ManyToMany
@JoinTable(name = "user_roles", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
【问题讨论】: