ManyToMany löscht zugewiesene Dateien

andyx1975

Aktives Mitglied
Hallo,

ich habe EclipseLink auf die Version 2.5.1 aktualisiert, seitdem habe ich das Problem, dass das Löschen meiner ManyToMany Releations nicht mehr funktioniert. Ich habe zwei Entity Klassen... einmal die Klasse DTour und DSupplier.

Beziehung in DTour:
Java:
 @ManyToMany( fetch = FetchType.LAZY )
    @JoinTable( name = "assignments_tours_suppliers", joinColumns = @JoinColumn( name = "tour_id", referencedColumnName = "tour_id" ), inverseJoinColumns = @JoinColumn( name = "supplier_id", referencedColumnName = "supplier_id" ) )
    private List<DSupplier> suppliers;


Beziehung in DSupplier:
Java:
@ManyToMany( mappedBy = "suppliers", fetch = FetchType.LAZY )
    private List<DTour> tours;


Die Methode zum löschen
Java:
@DELETE
    @Path( "delete/supplier/{id}" )
    @Produces( MediaType.APPLICATION_XML )
    public DSupplier deleteSupplier( @PathParam( "id" ) long id )
    {

        DSupplier result = null;
        EntityManager em = factory.createEntityManager();

        try
        {
            EntityTransaction entr = em.getTransaction();
            boolean committed = false;
            entr.begin();
            try
            {
                result = em.find( DSupplier.class, id );
                em.remove( result );
                entr.commit();
                committed = true;
            }
            finally
            {
                if ( !committed )
                    entr.rollback();
            }
        }
        finally
        {
            em.close();
        }

        return result;
    }

Früher war es so, wenn ich einen Supplier der Tour zugeordnet hatte, konnte ich den Supplier aufgrund der Zuweisung nicht mehr löschen. Jetzt lässt er sich löschen und die Zuweisung wird aus dem JOIN Table einfach gelöscht. Wie kann ich das unterbinden?

Danke und Gruß
Andy
 
Zuletzt bearbeitet:

andyx1975

Aktives Mitglied
Also im Grunde möchte ich den folgenden Zustand erreichen:

1. Der Supplier ist der Tour zugewiesen und wenn der Benutzer versucht, den Supplier zu löschen, soll das Löschen des Suppliers nicht vollzogen werden, da der Supplier der Tour zugewiesen ist.

2. Löscht der Benutzer die Tour, so soll die Tour gelöscht werden, die Beziehung zwischen beiden aufgehoben werden... der Supplier soll aber nicht gelöscht werden.

Danke und Gruß
Andy
 

Ähnliche Java Themen

Neue Themen


Oben