gpt4 book ai didi

java - JPA 使用@JOINTABLE 和额外的@JOINCOLUMNs

转载 作者:行者123 更新时间:2023-11-30 06:30:08 26 4
gpt4 key购买 nike

我正在使用 JPA 从现有 ERP 系统中提取数据。我正在为某些数据使用(现有的)jointable。问题是我还应该匹配一个不在连接表上但在源表本身上的列。

T1 (source)
- F1*
- F2
- F3
- ..

T2 (join)
- F4
- F5

T3 (source)
- F6*
- F7
- F8
- ..

我现在的连接表情况是这样的:

@ManyToOne(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
@JoinTable(name="T2", schema=Util.schema, joinColumns = {
@JoinColumn(name="F4", referencedColumnName="F2", unique=false),
@JoinColumn(name="F5", referencedColumnName="F3", unique=false)
},
inverseJoinColumns = {
@JoinColumn(name="F4", referencedColumnName="F7", unique=false),
@JoinColumn(name="F5", referencedColumnName="F8", unique=false)
}
}

这行得通,但是如何/在何处添加条件 T1.F1 = T3.F6?

最佳答案

JPA 不直接允许这样做。如果您使用的是 EclipseLink,则可以使用 DescriptorCustomizer 将其他条件添加到映射连接。

看, http://wiki.eclipse.org/EclipseLink/Examples/JPA/MappingSelectionCriteria

另一种选择是仅使用过滤集合的 get 方法过滤 Java 中的对象。

关于java - JPA 使用@JOINTABLE 和额外的@JOINCOLUMNs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10812092/

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