2016-03-24 18 views
0

Java programımda aşağıdaki özel durumları alıyorum.Spring veri jpa depo kaydetme() ManyToMany için çalışmıyor

org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.0.v20150309-bf26070): org.eclipse.persistence.exceptions.DatabaseException 

İç İstisna: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: benzersiz kısıtlama (USER1.ID_TYPE_TENANT_UNIQUE) ihlal etti.

İki tablo arasında ManyToMany ilişkilendirmesiyle kurulmuş bir veri modelim var. İkisi arasında bir JoinTable var ve bu şekilde kurulmuş bir varlığa sahibim.

public class MyEntity { 
    @Id 
    @SequenceGenerator(name = "MyEntitySeq", sequenceName = "SQ_ENTITY", allocationSize = 1, initialValue = 1) 
    @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "MyEntitySeq") 
    @Column(name = "ID") 
    private Integer id; 

    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) 
    @JoinTable(name = "MY_JOINED_TABLE", 
    joinColumns = { 
      @JoinColumn(name = "e_id", referencedColumnName = "ID")}, 
    inverseJoinColumns = { 
      @JoinColumn(name = "inverse_id", referencedColumnName = "ID")}) 
    private Set<Attributes> attributes; 

} 

Ben 3 varlık tablodaki diğer alanlara ve adına nitelikler masaya benzersiz kısıtlama, değeri üzerinde benzersiz bir kısıtlama var. Bir öznitelik kümesi olan bir varlığı sürdürmeye çalıştığımda, her ikisi de nedeniyle repository.save() yöntemi başarısız olur: 1. Bir öznitelik öznitelik tablosunda zaten var olabilir ve benzersiz kısıtlama nedeniyle eklenemez (İstediğim şey ama yine de bu öznitelikler ile ilişkilendirmeyi oluşturmak istiyorum) 2. Bir varlık zaten var olabilir, ancak benzersiz kısıtlama ihlal edilir. (Ben zaten veritabanında olmayan öznitelikleri eklemek ve bu varlık ile ilişkilendirmeyi ilişkilendirmek istiyorum).

Bu varlıklar/öznitelikler veritabanında yoksa, ince bir şekilde çalışır ve tüm 3 tabloya, ekler ve her şeyle birlikte yay ekler.

Herhangi bir ilişkilendirmeden tablolarda repository.save() yaparsam, kaydetme() aynı birincil anahtarda bir kaydetme() yapsam bile bu tabloları güncelleştirir.

Neden benim çok-kuruluşumda çalışmıyor?

+0

Merhaba, Sorununuzu çözmek mümkün olmuştur acaba olduğunu emin misin? İlgili bir sorunum olabilir. – dasnervtdoch

cevap

0

(Bahar MVC ve Hibernate benim ingilizce im çaylak için üzgün) bu deneyin, ben benzerleri sorunlar vardı ve bu noktalar importants şunlardır: Eğer elemanları size ilişkilendirmek istediğiniz üçüncü taraf olsun gerek

  1. aynı varlıktaki ilk varlık.
  2. ısrarcılığınız-bağlama xml Eğer