gpt4 book ai didi

java - 读取实体 A 时从实体 B 读取值(在非 PK 列上左连接)- JPA 2.0

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:14:33 25 4
gpt4 key购买 nike

所以我有:

@Entity
public class Entity {

@EmbeddedId
private MyId id;

// not a part of Entity but a part of OtherEntity
private String lookedUpValue;

}

public class MyId {
private String firstField;
private String secondField;
}

表格看起来像:

ENTITY
FIRSTFIELD (PK)
SECONDFIELD (PK)
// etc.

public class OtherEntity {
private String firstField;
private String value;
}

表格看起来像:

OTHERENTITY
VALUE (PK)
FIRSTFIELD
//etc.
}

当我阅读实体时,我希望有一个 LEFT JOIN 来填充其 lookedUpValue 字段,其中 Entity.id.firstField = OtherEntity.firstField 即在 SQL 中它将是:

Select ENTITY.FIRSTFIELD, ENTITY.SECONDFIELD, OTHERENTITY.VALUE 
from ENTITY
left join OTHERENTITY
ON ENTITY.FIRSTFIELD = OTHERENTITY.FIRSTFIELD

因此实体实例将填充所有这些字段。

这可能吗,或者您推荐另一种方法?将 OtherEntity 读取为每个 Entity 上的一个字段也可以工作 - 但是因为 MyId 没有映射到 OtherEntity 我不知道如何实现它。非常感谢。

最佳答案

一种使用 JoinColumn 注解在 Entity 中引用 OtherEntity 的方法,下面的代码在 Entity 中。

@OneToOne(optional="true")
@JoinColumn(name="FIRSTFIELD",referencedColumnName="FIRSTFIELD")
OtherEntity otherEntity;

关于java - 读取实体 A 时从实体 B 读取值(在非 PK 列上左连接)- JPA 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9034610/

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