2012-10-15 11 views
5

GWTを使用したSpring Rooアプリケーションがあります。サーバー側ではI'veは次のようにすべてのエンティティのためのシンプルなJpaRepositoryインターフェースを得た:入れ子オブジェクトはSpring JpaRepositoryによって保存されていません

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

MyOtherEntityクラスに1対1の関係を有するMyEntityクラスがあります。 私は、エンティティ・サービスを呼び出す方法

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

のみmyEntityオブジェクトが保存されますが持続します。 MyEntityのすべてのサブオブジェクトは無視されます。 myEntityオブジェクトとmyOtherEntityオブジェクトを一緒に保存する唯一の方法は、上記のコードの前に

myOtherEntityRepository.save(myOtherEntity); 

を呼び出すことです。では、JpaRepositoryインターフェースを使ってサブオブジェクトを自動的に保存するよりエレガントな方法はありますか?

答えて

10

コーディングの実装が表示されませんでした。でも、JPACascadeTypeを使用するだけでいいと思います。 JPA参照CascadeType

次のようにしてください。私の作品Recursiivce MyEntity関係

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

については

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

!ありがとうございました –

関連する問題