gpt4 book ai didi

java - Embeddable 中枚举的 @ElementCollection

转载 作者:行者123 更新时间:2023-11-30 07:45:20 25 4
gpt4 key购买 nike

我尝试在可嵌入中使用 elementCollection,但 JPA2.0 似乎忽略它。

如果我进行调试,我会看到可嵌入的集合已被填充,但它不会被持久化,并且 JPA 不会抛出任何异常。它似乎只是由于某种我找不到的原因而忽略了它。

如果我将该 elementCollection 放置在基本实体中(包含可嵌入的),则该集合将被保存。

这是为什么呢?我怎样才能改变它?

代码示例:

@Entity
@Table(name = "PRELEVATION_SURVEY")
public class PrelevationSurvey extends Domain {

@Embedded
private GeneralPatientInformation generalPatientInformation;

}

@Embeddable
public class GeneralPatientInformation {

@ElementCollection(
fetch = FetchType.EAGER)
@CollectionTable(name = "CAUSES_OF_DEATH",
joinColumns = @JoinColumn(name = "SURVEY_ID"))
@Column(name = "CAUSE_OF_DEATH")
@Enumerated(EnumType.STRING)
private List<CauseOfDeath> causesOfDeath;

}

再说一遍..如果我将它们放在 PrelevationSurvey 上,死亡原因会持续存在,但如果我将它们放入嵌入中,则死亡原因不会持续存在。

最佳答案

使用以下代码修复它:

public PrelevationSurvey save(PrelevationSurvey prelevationSurvey) {
PrelevationSurvey attachedPrelevationSurvey = super.save(prelevationSurvey);
attachedPrelevationSurvey.getGeneralPatientInformation().setCausesOfDeath(prelevationSurvey.getGeneralPatientInformation().getCausesOfDeath());
return attachedPrelevationSurvey;
}

保存方法调用“entityManager.merge(entity)”。我正在自己合并集合。

另请参阅:https://hibernate.atlassian.net/browse/HHH-6143

关于java - Embeddable 中枚举的 @ElementCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34020477/

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