gpt4 book ai didi

java - JPA 映射 - 每个 child 的 parent 的独特组合

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

我正在使用:
Spring 3.2
hibernate 4.1.9

我需要使用 JPA 映射三个类。 A类与B类具有ManyToMany关系。A类和B类的唯一组合需要拥有C类的集合。

表A

foo
id | name

表B

bar
id | name

表C

data
id | xrefId

连接表 -- (fooId,barId) 上的唯一键

xref
id | fooId | barId

改变现有的数据结构不是一个选择。

编辑1:

目标:加载 Foo,获取其 Bars 集合。从每个 Bar 中获取其(他们的!)数据集合。

A级

@Entity
public class Foo {
@Id
private UUID id;

@ManyToMany(optional = false)
@JoinTable(name = "xref",
joinColumns = { @JoinColumn(name = "fooId") },
inverseJoinColumns = { @JoinColumn(name = "barId") })
private List<Bar> lstBar = new ArrayList<Bar>();
}

B类

public class Bar {
@Id
private UUID id;

@ManyToMany(mappedBy = "lstBar")
private List<Foo> lstFoo = new ArrayList<Foo>();
}

C类

public class Data {
@Id
private UUID id;
}

最佳答案

只是亲吻。创建另一个类外部参照,其中包含 id , foo , barSet<Data>字段。使用两个参数创建一个 DAO 方法来查找外部参照 foobar (用一个简单的HQL来实现)。这种独特的需求可以通过数据库中的独特约束来实现。

仅仅通过类层次结构来表达它看起来不太好,最好使用 DAO。

关于java - JPA 映射 - 每个 child 的 parent 的独特组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14341930/

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