2012-10-15 24 views
5

GWT ile bir Spring Roo uygulamasına sahibim.İç içe geçmiş nesneler Spring JpaRepository tarafından kaydedilmedi

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

bir MyOtherEntity sınıfına One-To-One ilişkisi olan bir MyEntity sınıfı vardır: sunucu tarafında boyunca hep şeffaf gibi tüm varlıklar için basit JpaRepository arayüzleri var. Benim varlık-hizmetlerini arayın yöntem yalnızca myEntity nesne kaydedilecektir

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

inat. MyEntity'nin tüm alt nesneleri göz ardı edilir. myOtherEntity nesneyle birlikte myEntity nesneyi kurtarmanın tek yolu yukarıdaki kodundan önce

myOtherEntityRepository.save(myOtherEntity); 

çağırıyor. JpaRepository arayüzü ile alt nesneleri otomatik olarak kaydetmek için daha zarif bir yol var mı?

cevap

10

Kodlama uygulamanızı görmüyordum. Ama bence, JPA'da CascadeType'u kullanmanız yeterli. JPA Referansı CascadeType.

Aşağıdakileri deneyin. benim için çalışıyor Recursiivce MyEntity İlişki

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

için

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

! teşekkür ederim –