gpt4 book ai didi

java - @onetoone 和 @EmbeddedId

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

我正在尝试在一个类之间创建一对一的关系,我们将其称为“第一”,另一个类将其称为“第二”。

如果 Second 类使用 @EmbeddedId 作为其主键,它不会允许我这样做,我该如何解决这个问题?

基本上结构如下:

@Entity
class First {
private Integer id;
private Second second;

@OneToOne
@JoinColumn(name="id", referencedColumnName="parentId", nullable=true)
public Second getSecond() {return second;}
... snip irrelevant methods ...
}

@Entity
class Second{
private Integer id;
private Integer parentId;
... snip irrelevant methods ...
}

以上工作正常,但如果我将其更改为

@Entity
class Second{
private MyCustomKey key;
private Integer parentId;
... snip irrelevant methods ...
}

我收到“映射损坏”错误。

我看不出区别,因为两个 id 都是手动分配的?带有整数 id 的工作版本和嵌入式 id。

最佳答案

这是适合我的代码。

第一个实体

@Entity
public class Ent1 implements Serializable {

private static final long serialVersionUID = -5580880562659281420L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;

public void setId(Integer id) {
this.id = id;
}

public void setA(Integer a) {
this.a = a;
}

private Integer a;

@OneToOne
@JoinColumn(name="second", referencedColumnName="parentId", nullable=true)
private Ent2 second;

public void setSecond(Ent2 second) {
this.second = second;
}
}

第二个实体类(具有复合PK)

@Entity
public class Ent2 implements Serializable {

/**
*
*/
private static final long serialVersionUID = -1554968351865549494L;

@EmbeddedId
private Ent2Id id;

public Ent2Id getId() {
return id;
}

public void setId(Ent2Id id) {
this.id = id;
}

public Integer getParentId() {
return parentId;
}

public void setParentId(Integer parentId) {
this.parentId = parentId;
}

Integer parentId;
}

和我的自定义键类

@Embeddable
public class Ent2Id implements Serializable {

/**
*
*/
private static final long serialVersionUID = 3000940427471306899L;

Integer eid1 = 0;
Integer eid2 = 1;

public Ent2Id() {

}

public Ent2Id(Integer a, Integer b) {
eid1 = a;
eid2 = b;
}
}

关于java - @onetoone 和 @EmbeddedId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7457814/

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