Hibernate OneToMany ManyToOne

Diskutiere Hibernate OneToMany ManyToOne im Datenbankprogrammierung Forum; Hi welchen Code genau magst du sehen? Habe jetzt gemäß obigem Link @Cascade genutzt, aber dennoch bleiben die ID in der Tabelle...

  1. NicoDeluxe
    NicoDeluxe Mitglied
    Hi welchen Code genau magst du sehen? Habe jetzt gemäß obigem Link @Cascade genutzt, aber dennoch bleiben die ID in der Tabelle productsDescription null

    Code (Text):

    @OneToMany(mappedBy = "product", fetch = FetchType.LAZY)
    @Cascade({ CascadeType.ALL })
    private List<ProductsDescription> productsDescription;
     
     
    Zuletzt von einem Moderator bearbeitet: 12. Juli 2018
  2. NicoDeluxe
    NicoDeluxe Mitglied
    @mihe7 bist du so gut und kannst deinen code der posten? Vielleicht hab ich irgendwas mit den imports verwurstet
     
  3. mihe7
    mihe7 Aktives Mitglied
    Klar.
     

    Anhänge:

  4. NicoDeluxe
    NicoDeluxe Mitglied
    Cool danke schau ich mir umgehend an. Mit inno db oder so hat das nix zu tun oder?
     
  5. mihe7
    mihe7 Aktives Mitglied
  6. NicoDeluxe
    NicoDeluxe Mitglied
    Ich bekomm es einfach nicht hin Leute...Ich werd noch wahnsinnig.
    Zudem werden auch Relationen nicht korrekt gespeichert wie

    Ein Artikel hat einen Großhandel, es wird dann pro Artikel ein eigener Großhandel angelegt obwohl alles der Selbe ist und nur auf diesen verweisen sollte. Ich geb Hibernate auf, welche Alternativen habe ich? Scheinbar bin ich zu dämlich dafür
     
  7. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Wie sieht denn der Code aus? Eigentlich ist das alles kein Hexenwerk...

    Leichter ist vermutlich nur, gänzlich ohne ORM und stattdessen direkt mit SQL zu arbeiten..


    Dein letztes Problem klingt danach, als weißt du ihnen auch explizit unterschiedliche Großhandel zu, da wäre Code wieder interessant...

    Show Spoiler

    Für die Produkte mit Unidirektionaler Beziehung (Bidirektional braucht man in dem Fall höchstens für Optimierungen):

    Code (Java):
    import java.util.*;
    import javax.persistence.*;

    @Entity
    public class Product {

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column
        private Long id;

        @OneToMany(cascade = CascadeType.ALL)
        private List<ProductsDescription> productsDescriptions;

        public void addProductsDescription(ProductsDescription productsDescription) {
            if (this.productsDescriptions == null) {
                this.productsDescriptions = new ArrayList<>();
            }
            this.productsDescriptions.add(productsDescription);
        }

        public List<ProductsDescription> getProductsDescriptions() {
            return productsDescriptions;
        }

    }
     
    Code (Text):
    import javax.persistence.*;

    @Entity
    public class ProductsDescription {

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column
        private Long id;

        @Column
        private String text;

        ProductsDescription() {
        }

        public ProductsDescription(final String text) {
            this.text = text;
        }

        public String getText() {
            return text;
        }

    }
     
    Code (Text):
    import org.springframework.data.repository.CrudRepository;

    public interface ProductRepository extends CrudRepository<Product, Long> {

    }
     
    Code (Text):
    Product newProduct = new Product();
            newProduct.addProductsDescription(new ProductsDescription("Beschreibung..."));
            productRepository.save(newProduct);

            Product product = productRepository.findById(1L).get();
            assertThat(product.getProductsDescriptions().get(0).getText()).isEqualTo("Beschreibung...");
     
    Zuletzt bearbeitet: 17. Juli 2018 um 23:34 Uhr
  8. NicoDeluxe
    NicoDeluxe Mitglied
    Wie in deinem Spoiler klappt es, dann wird aber eine zusätzliche Tabelle angelegt, was die Sache langsamer macht oder? Also fühlt sich langsamer an.
     
  9. NicoDeluxe
    NicoDeluxe Mitglied
    Bezgl. der Beschreibung, kann es sein, dass ich zu erst das Product speichern muss, dann die ID holen und an die Productbeschreibung setzen?

    Verstehe nicht warum das nicht so wir in den ganzen tutorials klappt.
     
  10. mihe7
    mihe7 Aktives Mitglied
    Wenn das Beispiel von @mrBrown funktioniert, dann muss das Produkt offensichtlich nicht gespeichert werden. In meinem Beispiel muss man das auch nicht. Aber: erweitere den Code einfach so lange, bis es nicht mehr funktioniert. Dann weißt Du, wo es hakt.
     
Die Seite wird geladen...

Hibernate OneToMany ManyToOne - Ähnliche Themen

[Hibernate] @OneToMany - Eine referenzierte Tabelle abfragen
[Hibernate] @OneToMany - Eine referenzierte Tabelle abfragen im Forum Datenbankprogrammierung
Hibernate: Probleme beim Speichern von OneToMany - Datensätzen
Hibernate: Probleme beim Speichern von OneToMany - Datensätzen im Forum Datenbankprogrammierung
hibernate: Problem mit OneToMany
hibernate: Problem mit OneToMany im Forum Datenbankprogrammierung
Hibernate One-To-One mit Where Klausel
Hibernate One-To-One mit Where Klausel im Forum Datenbankprogrammierung
hibernate.cfg.xml Could not parse configuration
hibernate.cfg.xml Could not parse configuration im Forum Datenbankprogrammierung
Thema: Hibernate OneToMany ManyToOne