Welche Bedeutung hat die Annotation @javax.persistence.Lob in JPA?

Lesezeit: 2 Minuten

Benutzeravatar von Dev
Entwickler

Wann sollte ich verwenden @javax.persistence.Lob Anmerkung in JPA? Welche Datentypen können mit dieser Annotation annotiert werden?

Benutzeravatar von Zielu
Zielu

@javax.persistence.Lob bedeutet, dass das kommentierte Feld als BLOB (Binärdaten) in der Datenbank dargestellt werden soll.

Sie können alle kommentieren Serializable Datentyp mit dieser Anmerkung. In JPA wird der Feldinhalt beim Persistieren (Abrufen) unter Verwendung der Standard-Java-Serialisierung serialisiert (deserialisiert).

Gemeinsame Verwendung von @Lob ist, a zu kommentieren HashMap -Feld in Ihrer Entität, um einige der Objekteigenschaften zu speichern, die nicht in DB-Spalten abgebildet werden. Auf diese Weise können alle nicht zugeordneten Werte in ihrer binären Darstellung in einer Spalte in der DB gespeichert werden. Der zu zahlende Preis besteht natürlich darin, dass sie, da sie im Binärformat gespeichert sind, nicht mit JPQL/SQL durchsucht werden können.

  • Können wir @Lob zum Einfügen einiger Daten verwenden (einige Zeichenfolgen mit vielen Bildern)?

    – Lahiru-Gamage

    15. Februar 2018 um 6:25 Uhr

  • Für eine vorhandene Tabelle, die mit SQL-Abfragen erstellt wurde, tut dies @Lob macht Sinn? Ich verstehe nicht, was hinter den Kulissen passiert, wenn Leute sagen “Unterstützung für große Objekte”. @Zeilu

    – Arun Gowda

    16. August 2021 um 14:19 Uhr


Benutzeravatar von levrun
levrun

Entsprechend: https://docs.oracle.com/javaee/7/api/javax/persistence/Lob.html

@Lob Gibt an, dass eine persistente Eigenschaft oder ein persistentes Feld als großes Objekt für einen datenbankunterstützten großen Objekttyp persistent gespeichert werden soll.

@javax.persistence.Lob bedeutet, dass das kommentierte Feld als BLOB (Binärdaten) in der Datenbank dargestellt werden soll.

Ich nehme an, in der Datenbank könnten es nicht nur binäre Daten sein, sondern zeichenbasiert. Wie wir BLOB und CLOB haben könnten. Hier sind Beispiele in Java-Code:

@Lob
@Column(name = "CHARS", columnDefinition = "CLOB")
private String chars;`

@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "DATA", columnDefinition = "BLOB", nullable = false)
private byte[] data;

  • Fetch-Typ Lazy funktioniert in diesem Fall nicht, da Sie Byte verwenden[] um Ihre Daten zu speichern.

    – Herr Q

    30. Dezember 2018 um 8:08 Uhr

  • Das ist richtig! @Lob wird zur Kartierung verwendet Binary ODER large character objects!

    – CodeSlave

    21. November 2019 um 12:42 Uhr

  • Für eine vorhandene Tabelle, die mit SQL-Abfragen erstellt wurde, tut dies @Lob macht Sinn? Ich verstehe nicht, was hinter den Kulissen passiert, wenn Leute sagen “Unterstützung für große Objekte”. @levrun

    – Arun Gowda

    16. August 2021 um 14:19 Uhr

1430980cookie-checkWelche Bedeutung hat die Annotation @javax.persistence.Lob in JPA?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy