gpt4 book ai didi

java - 如何在Hibernate中查询Embedded类?

转载 作者:太空宇宙 更新时间:2023-11-04 12:24:38 25 4
gpt4 key购买 nike

我有一个可嵌入的模型(它不是一个实体),它只有 getter(我不想保留 setter,因为它的属性是固定的。)我将此模型嵌入到另一个实体中。

现在,我的要求是,当我在实体类中进行 GET 查询时,我想使用“Embeddable model”中定义的一些参数。现在的问题是,由于 Embeddable 模型没有单独的表,我无法查询数据库。

如何在 Hiberanate 中解决这个问题?

可嵌入类

@Embeddable
public class Observation {


@Column(name = "CREATED")
private LocalDateTime created;

@NotNull
@Column(name="O_CODE")
private String o_code;

public String getCode() {
return o_code;
}
public String getCreated() {
return created;
}
}

实体类

@Table(name = "field_observation", uniqueConstraints = @UniqueConstraint(columnNames = "code"))
public class FieldObservation {

private Long id;

@Embedded
private Observation observation = null;


getObservation{}
setObservation{}

....... }

获取调用

public Response getItems(
@QueryParam("o_code") java.lang.String o_code,
@QueryParam("id") java.lang.Long id,
@QueryParam("format") @DefaultValue("list") String format
) {
---- //How to query database to get Observation entry?

最佳答案

Hibernate:通过 @CollectionOfElements 注释和 JPA 2.0 ElementCollection 映射支持嵌入集合。

嵌入式对象无法直接查询,但可以在其父级上下文中查询。通常,最好选择父级,并从父级访问可嵌入项。这将确保嵌入对象已在持久性上下文中注册。如果在查询中选择了嵌入,则生成的对象将分离,并且不会跟踪更改。

例如。 从 FieldObservation fieldObservation 中选择 fieldObservation.o_code,其中 id= :param

关于java - 如何在Hibernate中查询Embedded类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38493218/

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