2016-07-29 9 views
1

Ich verwende Mieter nach Schema, und ich habe die folgenden Einheiten:Eclipse tut Befehl Einfügen in falschen Mieter

@Entity 
@Multitenant(MultitenantType.TABLE_PER_TENANT) 
@TenantTableDiscriminator(type = TenantTableDiscriminatorType.SCHEMA) 
public class Person { 
    @OneToOne(mappedBy = "person", cascade = CascadeType.ALL, fetch = FetchType.LAZY) 
    private CTPS ctps; 
} 

@Entity 
@Table(name = "CTPS") 
@Multitenant(MultitenantType.TABLE_PER_TENANT) 
@TenantTableDiscriminator(type = TenantTableDiscriminatorType.SCHEMA) 
public class CTPS { 
    @OneToOne 
    @JoinTable(name = "PERSON_CTPS", joinColumns = @JoinColumn(name = "CTPS_ID"), inverseJoinColumns = @JoinColumn(name = "PERSON_ID")) 
    private Person person; 
} 

Bei einem Update zur gleichen Zeit zwei differents Mieter verwenden, tritt Schlüsselverletzung Fehler in einem der Anforderungen, weil tenant_a versucht, eine Einfügung in der Tabelle person_ctps mit tenant_b auszuführen.

Ich verwende: postgresql-9.4.5-3 Wildfly-8.2.0 EclispeLink 2.6.3 mit patchs von Themen 410870 und 493235.

Jeder weiß, wie dieses Problem beheben?

+0

Erz Informationen über die Einzelheiten zu dieser Situation führen Bitte geben. Lesen Sie zum Beispiel von einem Mieter zu einem anderen? – Chris

+0

Zwei gleichzeitig fortlaufende Threads, jeweils in Ihrem jeweiligen Mandanten getrennt nach Datenbankschema – Andrey

Antwort

0

Ich habe das Problem gefunden. Das Objekt, das Relationstabellen verwaltet, wird in EclipseLink nicht geklont.

Mit dem Befestigungsflicken Ausgabe 498891, ist das Problem gelöst