作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在可嵌入中使用 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)”。我正在自己合并集合。
关于java - Embeddable 中枚举的 @ElementCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34020477/
我是一名优秀的程序员,十分优秀!