gpt4 book ai didi

orm - 帮助在 JPA 2.0 中映射复合外键

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

我是 JPA 的新手,我正在尝试映射旧数据库。文件单独正确加载,但关系无法正常工作。任何帮助,将不胜感激。

Java

@Entity
@IdClass(ParentKey.class)
public class Parent {
@Id
@Column(name="code")
private String code;

@Id
@Column(name="id")
private int id;

@OneToMany(mappedBy="parent")
private List<Child> children = new ArrayList<Child>();
}

public class ParentKey {
private String code;
private int id;
}

@Entity
@IdClass(ChildKey.class)
public class Child {
@Id
@JoinColumns({
@JoinColumn(name="code")
@JoinColumn(name="id")
})
private Parent parent;

@Id
@Column(name="index")
private int index;
}

public class ChildKey {
private String code;
private int id;
private int index;
}

SQL
create table Parent(
code char(4) not null,
id int not null,
primary key(code,id)
);

create table Child(
code char(4) not null,
id int not null,
index int not null,
primary key(code, id, index),
foreign key(code, id) references Parent(code,id)
);

编辑1:
添加 ChildKey 和 ParentKey 类。

最佳答案

这是复合标识 1-N 关系的 DataNucleus 文档的链接。可以帮助您确定问题所在。首先,您没有在 Child 上定义 IdClass

http://www.datanucleus.org/products/accessplatform_3_0/jpa/orm/compound_identity.html#1_N_coll_bi

关于orm - 帮助在 JPA 2.0 中映射复合外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5721545/

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