Pet*_* B. 2 java hibernate primary-key composite-primary-key
假设我有一个看起来像这样的类:
public class MyClass {
@Id
@Column(name = "ID")
private long Id;
}
Run Code Online (Sandbox Code Playgroud)
我可以使用hibernate会话对类进行get或load,如下所示:
MyClass a = (MyClass)session.get(MyClass.class, new Long(100));
Run Code Online (Sandbox Code Playgroud)
但是,假设我有一个以多列为主键的类:
public MyJoinClass implements Serializable {
private static final long serialVersionUID = -5L;
@Id
@Column(name = "ID")
private long id;
@Id
@Column(name = "EMAIL_ADDRESS_ID")
private long emailAddressId;
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用get或load这样的类?
尝试使用和@IdClass或@EmbeddedId
public MyJoinClass implements Serializable {
private static final long serialVersionUID = -5L;
@EmbeddedId
private MyJoinClassKey key;
}
public MyJoinClassKey implements Serializable{
@Column(name = "ID")
private long id;
@Column(name = "EMAIL_ADDRESS_ID")
private long emailAddressId;
}
Run Code Online (Sandbox Code Playgroud)
然后用
MyJoinClass a = (MyJoinClass )session.get(MyJoinClass .class, new MyJoinClassKey (1, "email"));
Run Code Online (Sandbox Code Playgroud)
看看这个问题,这是广泛的解释.基本上,hibernate有复合键的机制.
| 归档时间: |
|
| 查看次数: |
8794 次 |
| 最近记录: |