ManyToMany löscht zugewiesene Dateien

Dieses Thema ManyToMany löscht zugewiesene Dateien im Forum "Data Tier" wurde erstellt von andyx1975, 14. Juni 2014.

Thema: ManyToMany löscht zugewiesene Dateien Hallo, ich habe EclipseLink auf die Version 2.5.1 aktualisiert, seitdem habe ich das Problem, dass das Löschen...

  1. 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:
    Code (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:
    Code (Java):

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

    Die Methode zum löschen
    Code (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: 14. Juni 2014
  2. Vielleicht hilft dir das Grundlagen Training weiter --> *Klick*
  3. 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