gpt4 book ai didi

java - 使用 Hibernate Get 和多列主键

转载 作者:行者123 更新时间:2023-12-01 12:44:45 24 4
gpt4 key购买 nike

假设我有一个看起来像这样的类:

public class MyClass {
@Id
@Column(name = "ID")
private long Id;
}

我可以使用 hibernate session 对类进行获取或加载,如下所示:
MyClass a = (MyClass)session.get(MyClass.class, new Long(100));

但是,假设我有一个以多列为主键的类:
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;
}

是否可以对这样的类使用 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;
}

然后使用
MyJoinClass a = (MyJoinClass )session.get(MyJoinClass .class, new MyJoinClassKey (1, "email"));

看看这个问题, this被广泛解释。基本上 hibernate 有复合键的机制。

关于java - 使用 Hibernate Get 和多列主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29925784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com