JPA Cascade: Entity nur speichern, wenn sie nicht schon existiert

Diskutiere Cascade: Entity nur speichern, wenn sie nicht schon existiert im Data Tier Forum; Hi, ich versuche ein Objekt nur dann kaskadierend persistent zu machen, wenn es nicht schon in der DB existiert. PersistentObject.java...

  1. saw
    saw Neues Mitglied
    Hi, ich versuche ein Objekt nur dann kaskadierend persistent zu machen, wenn es nicht schon in der DB existiert.

    PersistentObject.java
    Code (Text):

    @MappedSuperclass
    public abstract class PersistentObject {

        @Id
        @Column(length = 64)
        private String id;

        public PersistentObject() {
            super();
            this.id = UUID.randomUUID().toString();
        }
           
        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }
       

        @Override
        public int hashCode() {
            final int prime = 31;
            int result = 1;
            result = prime * result + ((id == null) ? 0 : id.hashCode());
            return result;
        }

        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            PersistentObject other = (PersistentObject) obj;
            if (id == null) {
                if (other.id != null)
                    return false;
            } else if (!id.equals(other.id))
                return false;
            return true;
        }
       
    }
     
    Tag.java
    Code (Text):

    @Entity
    public class Tag extends PersistentObject {
       
        public Tag() {
            super();
        }
       
        public Tag(String value) {
            super();
            setId(value);
        }


        @Override
        public String toString() {
            return "Tag [getId()=" + getId() + "]";
        }
       
    }
    Jetzt habe ich eine weitere Klasse, die mehrere Tags referenziert und möchte alles zusammen mit EntityManager#persist() speichern können. ABER: Momentan bekomme ich dabei einen Fehler, der mit sagt "So einen Tag mit dieser ID habe ich schon". Ich suche nach einer Möglichkeit JPA / Hibernate zu sagen es soll in diesem Fall bitte den Tag benutzen, der schon persistent ist.Geht das irgendwie?

    Grüße
    saw
     
  2. Vielleicht hilft dir das kostenlose Training weiter --> (hier klicken)
Die Seite wird geladen...

Cascade: Entity nur speichern, wenn sie nicht schon existiert - Ähnliche Themen

Cascade.All greift nur nach Jetty bzw. Tomcat neustart
Cascade.All greift nur nach Jetty bzw. Tomcat neustart im Forum Data Tier
JPA Cascade Types
JPA Cascade Types im Forum Data Tier
CASCADE Anweisungen in SQL
CASCADE Anweisungen in SQL im Forum Datenbankprogrammierung
OneToOne Beziehung erzeugt not marked cascade PERSIST
OneToOne Beziehung erzeugt not marked cascade PERSIST im Forum Data Tier
Problem mit @ManyToMany und CascadeType.ALL
Problem mit @ManyToMany und CascadeType.ALL im Forum Data Tier
Thema: Cascade: Entity nur speichern, wenn sie nicht schon existiert