Spring JpaRepository尚未保存嵌套对象

时间:2012-10-15 13:52:37

标签: java spring repository spring-roo spring-data

我有一个带有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接口自动保存子对象吗?

1 个答案:

答案 0 :(得分:16)

我没有看到你的编码实现。但是,我认为,只需要在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 ;
}

用于Recursiivce MyEntity Relationship

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