Hibernate Zusammengesetzter Schlüssel mit anderen Objekten

Diskutiere Zusammengesetzter Schlüssel mit anderen Objekten im Data Tier Forum; Hallo Leute :) Ich habe folgende Ausgangsituation: Die Klasse Article: @Entity @Table public class Article implements Serializable {...

  1. janus23
    janus23 Neues Mitglied
    Hallo Leute :)

    Ich habe folgende Ausgangsituation:
    Die Klasse Article:
    Code (Java):

    @Entity
    @Table
    public class Article implements Serializable {
       
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private int articleID;
        @Column(nullable = false)
        private String name;
        @Column(nullable = false)
        private BigDecimal price = BigDecimal.ZERO;
    //getter, setter, constructor
    }
     
    Die Klasse Payment:
    Code (Java):

    @Table
    @Entity
    public class Payment implements Serializable {
       
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private int paymentID;
        @OneToOne
        private Account account;
        @OneToOne
        private Payee payee;
        @Column(nullable = false)
        private Date date;
        @OneToMany
        private List<PaymentPosition> paymentPositions;
    //getter, setter, constructor
    }
     
    Jetzt möchte ich gerne mit diesen Klassen einen Primary Key bilden, dazu habe ich mal folgende Klassen angelegt:
    Code (Java):

    public class PaymentPositionPK implements Serializable{
        protected Article article;
        protected Payment payment;

       

        public PaymentPositionPK() {
            article = new Article();
            payment = new Payment();
        }
    //getter,...
    }
     
    und:

    Code (Java):

    @Entity
    @Table
    @IdClass(PaymentPositionPK.class)
    public class PaymentPosition implements Serializable {
       
        @Id
        private Article article;
        @Id
        private Payment payment;
       
       
       @Column(nullable = false)
       private int quantity;
       @OneToOne
       private Category category;
    //getter, setter, bla..
    }
     
    Lasse ich nun die Tabellen von Hibernate erzeugen, spuckt er mir folgende aus:
    Table: payment_paymentposition
    Columns:
    Payment_paymentID int(11)
    paymentPositions_article tinyblob
    paymentPositions_payment tinyblob

    was mir ziemlich falsch vorkommt.

    Wie kann ich das den richtig machen?^^

    Danke für die Hilfe!
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. knucki
    knucki Mitglied
    Moin, verstehe ich Dich richtig, wenn ich es so interpretiere, dass Du einen "PK" über 2 "Entitäten" erzeugen willst?

    Wenn Du sowas schon mit Entitätsobjekten machst, dann musst Du für jede Entität auch die Methoden hashCode und equals überschreiben.
     
    Zuletzt bearbeitet: 5. Nov. 2014
  4. CptSocket
    CptSocket Mitglied
    Hoi Janus

    Ich bin mir ziemlich sicher, dass das keine gute Idee ist :)

    Ein Primärschlüssel hat die Aufgabe, eine Entität eindeutig zu identifizieren, soll sich aus möglichst wenigen Attributen zusammen setzen und sich nicht ändern (da sonst die Fremdschlüsselbeziehungen nachgezogen werden müssen). Zudem stelle ich mir Fremdschlüsselbeziehungen auf diesen PK ziemlich kompliziert vor...

    Aus welchem Grund willst du den PK so zusammensetzen / welches Problem willst du mit diesem PK lösen?

    Ist es möglich, dass du eigentlich eine Entität PaymentPosition benötigst, welche jeweils eine OneToOne-Beziehung zu Artikel und zu Payment hat?


    Freundliche Grüsse
    CptSocket
     
Die Seite wird geladen...

Zusammengesetzter Schlüssel mit anderen Objekten - Ähnliche Themen

Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem.
Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. im Forum Datenbankprogrammierung
Kontroll-Logik MySQL in XAMPP: Zusammengesetzter Primarschlüssel aus Fremdschlüsseln
Kontroll-Logik MySQL in XAMPP: Zusammengesetzter Primarschlüssel aus Fremdschlüsseln im Forum Datenbankprogrammierung
zusammengesetzter Schlüssel mit JPA
zusammengesetzter Schlüssel mit JPA im Forum Datenbankprogrammierung
[iReport] Übergabeparamter: Zusammengesetzter String
[iReport] Übergabeparamter: Zusammengesetzter String im Forum Allgemeine Java-Themen
Email mit public-key verschlüsseln
Email mit public-key verschlüsseln im Forum Allgemeine Java-Themen
Thema: Zusammengesetzter Schlüssel mit anderen Objekten