API output Wert, statt ID

Diskutiere API output Wert, statt ID im Web Tier Forum; Meinst du so? @ManyToOne private List<Manufacturer> manufacturer;

  1. NicoDeluxe
    NicoDeluxe Mitglied
    Meinst du so?

    @ManyToOne
    private List<Manufacturer> manufacturer;
     
  2. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Hat ein Product denn mehrere Manufacturer? ;)
     
  3. NicoDeluxe
    NicoDeluxe Mitglied
    Hab ich auch grad bemerkt :D

    Hm komisch, jetzt hat mir Hibernate eine Spalte manufacturer_manufacturer_id in products angelegt.
    1. warum?
    2. wir kann ich das vermeiden, dass es eigenständig die Datenbank verändert?
     
  4. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Vorher wird es in Product doch auf eine Spalte gegeben haben, die auf Manufacturer verweist?

    Die Default-Benennung für Verweise auf andere Tabellen ist <Feldname>_<Name des ID-Felds>, erstes ist hier "manufacturer", und die ID von Manufacturer ist "manufacturer_id", ergibt eben "manufacturer_manufacturer_id"

    In deinen Properties kannst du spring.jpa.hibernate.ddl-auto angeben, aktuell dürfte das auf update stehen (bedeutet, das Schema wird angepasst), du kannst das auf validate setzen, dann wird nur noch überprüft, ob Klassen und Schema zueinander passen. (spring.jpa.hibernate.ddl-auto=validate, wenn properties, mit yaml entsprechend mit dessen Syntax)
     
  5. NicoDeluxe
    NicoDeluxe Mitglied
    o_O krasser typ! danke!!
    so nun nochmal zu der Doppel id. hab in product eine manufacture_id und in der product_id folgenden Code
    Code (Java):

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "products_id")
    private int productsId;

    @Column(name = "manufacturer_id")
    private int manufacturerId;

    @ManyToOne
    private Manufacturer manufacturer;
    wie muss die denn dann korrekt lauten?
     
  6. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Die objekt-eigene ID kann so blieben, das bleibt völlig dir überlassen. Üblicher wäre aber einfach id für die eigene ID (also in diesem Fall statt productsId). Alle anderen IDs würde man über Beziehungen abbilden (manufacturerId ist in diesem Fall ja schon durch manufacturer ersetzt)

    Würde also zu:
    Code (Java):
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")//uU anpassen
    private int id;

    @ManyToOne
    private Manufacturer manufacturer;
     
    Zuletzt bearbeitet: 12. Juni 2018
  7. NicoDeluxe
    NicoDeluxe Mitglied
    Super! Vielen Dank du hast mir wie immer super weitergeholfen!

    Mein Json sieht nun wie folgt aus, irgendwas zu meckern was man verbessern könnte?

    Code (Text):
    {
        "id": 1,
        "manufacturer": {
            "manufacturerName": "Tonrtezilla"
        },
        "productsRating": 6,
        "productsSku": "12345",
        "productsAttributes": [
            {
                "productsAttributesDescription": {
                    "languageId": 1,
                    "productsAttributeName": "Größe"
                },
                "productsAttributesValue": {
                    "productsAttributeValue": "XXL",
                    "language_id": 1
                }
            }
        ],
        "productsCodes": [
            {
                "productsEan": "zzz",
                "productsMpn": "uuuu"
            }
        ],
        "productsDescription": {
            "languageId": 1,
            "productsDescription": "lange beschreibung",
            "productsName": "testname",
            "productsSeoDescription": "seo beschreibung",
            "productsSeoKeywords": "",
            "productsSeoTitle": "",
            "productsShortDescription": "kurze beschreibung"
        },
        "productsToCategories": [
            {
                "productsCategoriesId": 1
            },
            {
                "productsCategoriesId": 2
            }
        ]
    }
    Die Kategorien werden der nächste Knaller -.-
    Ein Product kann in mehreren Kategorien sein, wobei jede Kategorie unterschiedlich viele Eltern und Kinder haben kann
     
  8. stg
    stg Bekanntes Mitglied
    Du könntest - wie ich dir schon seit Ewigkeiten hier im Forum predige - einfach mal anfangen Dokumentation und/oder gescheite Bücher zu den Themen zu lesen.
     
  9. NicoDeluxe
    NicoDeluxe Mitglied
    und in den Büchern find ich dann Erfahrungen, ja?
     
  10. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Diese Frage z.B wäre mit so gut wie jedem JPA-Tut als Grundlage gar nicht erst aufgekommen ;)


    Und zumindest mMn sind das Grundlagen und nicht Erfahrung, die hier fehlen, da kann man aus Büchern so einiges lernen...
     
  11. 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...

API output Wert, statt ID - Ähnliche Themen

Mehrer Hexwerte über outputstream senden, und empfangen (Bluetoth)
Mehrer Hexwerte über outputstream senden, und empfangen (Bluetoth) im Forum Mobile Geräte
Input/Output Stream werte in Label anzeigen.
Input/Output Stream werte in Label anzeigen. im Forum AWT, Swing, JavaFX & SWT
Output aus fremden Klasse auswerten
Output aus fremden Klasse auswerten im Forum Java Basics - Anfänger-Themen
rxtx OutputStream sendet falsche werte
rxtx OutputStream sendet falsche werte im Forum Allgemeine Java-Themen
Double Wert über OutputStream verschicken
Double Wert über OutputStream verschicken im Forum Allgemeine Java-Themen
Thema: API output Wert, statt ID