gpt4 book ai didi

java - 如何为以下内容定义 EclipseLink 注释?

转载 作者:行者123 更新时间:2023-11-30 07:35:37 24 4
gpt4 key购买 nike

我是 EclipseLink 世界的新手,我一直在阅读文档,但在尝试表示下表时遇到了一个真正的问题。

PTY_NO  |   REF_OBG
6544 45663
6544 1234
6544 97543
6544 1123
6544 77897

理想情况下,我想将上述数据表示如下。

@Entity
@Table(name="FCS_ISSR_OBG")
public class fcs_issr_obg implements Serializable {

@Id
@Column(name="PTY_NO")
private long pty_no;

@Column(name="REF_OBG")
private List<long> ref_obg;

...

一旦我有了这种形式的数据,我就计划将该类序列化到 Coherence 缓存中。

但是我使用的注释实际上并没有编译...

如有任何帮助,我们将不胜感激。

..更新

到目前为止我想出的最好的是

@Entity
@Table(name="FCS_ISSR_OBG")
public class fcs_issr_obg implements Serializable, PortableObject {

private static final long serialVersionUID = 1L;

@Id
@Column(name="PTY_NO")
private long pty_no;

@ElementCollection(targetClass = Long.class, fetch = EAGER)
@CollectionTable(
name = "FCS_ISSR_OBG",
joinColumns=@JoinColumn(name="PTY_NO")
)
@Column(name ="REF_OBG")
private List<Long> collection;

然而,这会导致 2 个查询......这并不是我真正想要的。

干杯丰富

最佳答案

要强制使用父查询获取任何关系,可以在 EclipseLink 中使用 @JoinFetch 注释。

不过,根据数据的不同,在单独的查询中读取集合可能是最佳解决方案。

您还可以在 EclipseLink 中使用@BatchFetch 来批量获取关系(仍然是 2 个查询,但不是 n+1 个查询)。我最近在我的博客里做了一​​个batch和join fetching的对比,看,

http://java-persistence-performance.blogspot.com/

关于java - 如何为以下内容定义 EclipseLink 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4284778/

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