我有一个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接口自动保存子对象?
我不知道您的实施细节。但是,我认为,只需在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 ;
}