JPA / HIBERNATE保存后无法正确检索实体

时间:2019-02-21 15:32:29

标签: java hibernate spring-boot jpa spring-data-jpa

嗨,我有一个直接的问题,

我要在表中插入新记录,然后在此之后,以所有关系(附加列表等)检索此新记录。

enter image description here

在插入阶段,我有一些对象,例如WvClsProgetto,仅带有ID,以允许Hibernate正确插入外键, 因此这些对象没有其他信息,只有ID。

当我保存我的实体时,我想检索它,但是当我检索我的实体时,它里面的VwClsProgetto仅填充ID ...而不是其所有属性:

enter image description here

但是此属性均为空,显然在我的表中记录的属性值正确。

我确实以这种方式保存:

enter image description here

我的存储库类别为:

enter image description here

基本存储库来自JPA:

enter image description here

POM片段:

enter image description here

帮助我!

1 个答案:

答案 0 :(得分:1)

您需要级联保存,否则只会保存根实体:

@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
private WvClsProgetto wvClsProgetto;

更新

为了保存具有现有依赖关系的实体,您必须首先对其进行检索,以使其位于持久性上下文中。

VwClsProgetto existingVwClsProgetto = vwClsProgettoRepository.findById(
     scheda.getVwClsProgetto().getId())
   .get() 

然后重新设置该属性:

scheda.setVwClsProgetto(existingVwClsProgetto);