【发布时间】:2012-04-06 00:07:57
【问题描述】:
我正在尝试映射下表
CREATE TABLE Person (
p_id varchar(255) not null,
p_name varchar(255 not null,
p_post_code varchar(12) not null,
primary key (p_id, p_name),
);
通常当我将实体映射到上表时,我会做这样的事情(对于单列主键):
private int p_id;
private String p_name;
private String p_post_code;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="p_id")
public Long getPId() {
return p_id;
}
public void setPId(int p_id) {
this.p_id = p_id;
}
@Column(name="p_name")
public String getPname() {
return p_name;
}
public void setPname(String string) {
this.p_name = string;
}
@Column(name="p_post_code")
public String getPostCode() {
return p_post_code;
}
public void setPostCode(String string) {
this.p_post_code = string;
}
如果主键是单个列(即 p_id)并且该列的值是在数据库中生成的,则上述方法有效。 我将如何修改上面的内容以映射它,以便 p_id 和 p_name 都是主键。
另外,如果复合键是另一个表中的外键,这将如何工作。
我试图用谷歌搜索一些例子,但我找不到一个简单的例子,而且大多数似乎都在使用基于 XML 的配置。
【问题讨论】:
-
你可以看这里:[stackoverflow] [1]:stackoverflow.com/questions/9764204/…