One to Many bekomm es nicht hin

Diskutiere One to Many bekomm es nicht hin im Datenbankprogrammierung Forum; Hallo zusammen, ich versuche eine one to Many Beziehung hinzubekommen, Tabelle products products_id (AI, PK) products_name [ATTACH] Tabelle...

  1. NicoDeluxe
    NicoDeluxe Mitglied
    Hallo zusammen,

    ich versuche eine one to Many Beziehung hinzubekommen,

    Tabelle products
    products_id (AI, PK)
    products_name
    upload_2018-6-10_18-22-7.png

    Tabelle attribute
    attribute_id( AI, PK)
    upload_2018-6-10_18-22-24.png


    Jedes product soll mehrere Attribute haben
    upload_2018-6-10_18-24-41.png

    Wenn ich in Eclipse Create Entities from JPA aufrufe, schlägt er immer 1 : 1 vor

    was hab ich falsch gemacht an der Tabelle attributes? Wenn ich von products auf attributes verlinke, bekomme ich * : 1 aber das ist falsch rum...
     

    Anhänge:

  2. Vielleicht hilft dir diese Seite hier weiter (Klick!)
  3. mihe7
    mihe7 Bekanntes Mitglied
    Wenn jedes Produkt mehrere Attribute haben soll, musst Du in der Datenbank in Attribute einen Fremdschlüssel definieren, der das Produkt referenziert. Du hast es umgekehrt, d. h. n Produkte können sich auf 1 Attribut beziehen.
     
  4. NicoDeluxe
    NicoDeluxe Mitglied
    Danke, aber leider nicht:

    upload_2018-6-10_18-40-17.png

    upload_2018-6-10_18-40-55.png
     
  5. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Warum schreibst du nicht einfach direkt die Java-Klassen?
     
  6. mihe7
    mihe7 Bekanntes Mitglied
    @mrBrown: das wäre zu einfach :)
    @NicoDeluxe: Mal ein Beispiel:
    Code (SQL):

    CREATE TABLE A(
      ID INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
      BEZEICHNUNG VARCHAR(50) NOT NULL
    );
    CREATE TABLE B(
      ID INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
      BEZEICHNUNG VARCHAR(50) NOT NULL
    );
     
    Damit hast Du zwei unabhängige Tabellen. Wenn Du jetzt willst, dass es zu einem A mehrere B geben kann, kann B etwa so aussehen:
    Code (SQL):

    CREATE TABLE B(
      ID INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
      A_ID INT(11),
      BEZEICHNUNG VARCHAR(50) NOT NULL,
      CONSTRAINT B_A_FK FOREIGN KEY (A_ID) REFERENCES A(ID)
    );
     
    Weil A_ID auch null sein kann, können B's auch ohne A existieren. Willst Du das nicht, musst Du der Spaltendefinition von A_ID noch eine "NOT NULL"-Einschränkung hinzufügen.
     
    NicoDeluxe gefällt das.
  7. NicoDeluxe
    NicoDeluxe Mitglied
    vielen Dank, das hat gepasst:)

    nun noch eine Frage. Angenommen ich erstelle Objekte vom Typ Product. Kann ich die Entity-Klasse nehmen und als neues Objekt initialisieren oder muss ich noch ein Pojo erstellen, welches dann wiederum auf das Entityobjekt mapped?
     
  8. mihe7
    mihe7 Bekanntes Mitglied
    Die Entity-Klasse ist ein POJO. Sie hat ggf. nur entsprechende Annotationen.
    Du kannst also hergehen und z. B. folgendes machen:
    Code (Java):

    EntityManager em;
    ...
    Product p = new Product();
    em.persist(product);
     
     
  9. NicoDeluxe
    NicoDeluxe Mitglied
    Während Product mit @Entity annotiert ist? suuuuper das wollte ich lesen vielen Dank :)
     
  10. Hinweis: Du möchtest Java lernen? Vielleicht hilft dir dieses Training hier weiter. Sichere dir hier den Zugriff auf umfangreiches Java-Know How und starte richtig durch!
Die Seite wird geladen...

One to Many bekomm es nicht hin - Ähnliche Themen

SelectManyCheckbox an SelectOneRadio binden?
SelectManyCheckbox an SelectOneRadio binden? im Forum Java Basics - Anfänger-Themen
Hibernate OneToMany ManyToOne
Hibernate OneToMany ManyToOne im Forum Datenbankprogrammierung
JDBC Error "Too many Connections"
JDBC Error "Too many Connections" im Forum AWT, Swing, JavaFX & SWT
JPA TreeStruktur mit ManyToMany Relation
JPA TreeStruktur mit ManyToMany Relation im Forum Datenbankprogrammierung
Many to Many Tabellen in Java abbilden?
Many to Many Tabellen in Java abbilden? im Forum Datenbankprogrammierung
Thema: One to Many bekomm es nicht hin