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