Spring JpaRepository尚未保存嵌套对象

问题描述 投票:8回答:1

我有一个GWT的Spring Roo应用程序。在服务器端,我为所有实体都提供了简单的JpaRepository接口,例如:

@Repository
public interface MyEntityRepository extends JpaSpecificationExecutor<MyEntity>, JpaRepository<MyEntity, Long> {
}

[存在一个MyEntity类,它与MyOtherEntity类具有一对一的关系。当我调用我的实体服务持久方法时

public void saveMyEntity (MyEntity myEntity) {
    myEntityRepository.save(myEntity);
}

仅保存myEntity对象。 MyEntity的所有子对象都将被忽略。保存myEntity对象和myOtherEntity对象的唯一方法是调用

    myOtherEntityRepository.save(myOtherEntity);

在上面的代码之前。那么,有没有一种更优雅的方法可以通过JpaRepository接口自动保存子对象?

java spring repository spring-roo spring-data
1个回答
18
投票

我不知道您的实施细节。但是,我认为,只需在CascadeType中使用JPA。 JPA参考CascadeType

尝试如下。

public class MyEntity {
    @OneToOne(cascade=CascadeType.PERSIST) <or> @OneToOne(cascade=CascadeType.ALL) <-- for all operation
    @JoinColumn(name = "YOUR-ID")
    private MyOtherEntity myOtherEntity ;
}

用于递归MyEntity关系

public class MyEntity {
    @OneToOne(cascade=CascadeType.PERSIST) <or> @OneToOne(cascade=CascadeType.ALL) <-- for all operation
    @JoinColumn(name = "YOUR-ID")
    private MyEntity myEntity ;
}
© www.soinside.com 2019 - 2024. All rights reserved.