您的位置:首页 > 其它

hibernate联合主键 注解方式

2014-04-09 10:34 441 查看
方法一:主键类用@Embeddable,pojo类仍然用@Entity但是引用主键类的对象用@Id

主键pojo类:

01
@Embeddable
02
public
class
composeIdPK
implements
Serializable{
03
private
Stringname;
04
private
int
id;
05
@Column
(length=
20
,name=
"pkName"
)
06
public
StringgetName(){
07
return
name;
08
}
09
@Column
(length=
10
,name=
"uuid"
)
10
public
int
getId(){
11
return
id;
12
}
13
。。。。。。。。。。。。。。。。。
pojo类:

01
@Entity
02
public
class
composeId{
03
private
composeIdPKpk;
04
private
int
uid;
05
private
Stringtitle;
06
private
Stringaddress;
07
08
@Id
09
public
composeIdPKgetPk(){
10
return
pk;
11
}
12
。。。。。。。。。。。。。。。。。。
方法二:@EmbeddedlD(*)
主键pojo类无需加@EmbeddedlD注解,只需在pojo类新属性“composeIdPK”的get方法前写@EmbeddedlD即可

方法三:@Id@IdClass(*)主键pojo类无需加注解,原pojo类的id,name属性保留不变,也无需新增“ComposeIDPK”属性。只在id,name的get方法前都加@Id,并在原pojo类前加

如下:

01
@Entity
02
@IdClass
(com.study.model.composeID.composeIdPK.
class
)
03
public
class
composeId{
04
//privatecomposeIdPKpk;
05
private
int
id;
06
private
Stringname;
07
@Id
08
@Column
(length=
10
,name=
"uuid"
)
09
public
int
getId(){
10
return
id;
11
}
12
public
void
setId(
int
id){
13
this
.id=id;
14
}
15
@Id
16
@Column
(length=
20
,name=
"pkName"
)
17
public
StringgetName(){
18
return
name;
19
}
20
public
void
setName(Stringname){
21
this
.name=name;
22
}
23
private
Stringtitle;
24
private
Stringaddress;
测试ok!

转:http://my.oschina.net/u/942629/blog?catalog=431496
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate