Wie kann ich "Class" in einer DB speichern?

temi

Top Contributor
Wie kann ich folgende beispielhafte Datenstruktur in einer DB (vermutlich H2, die Frage ist aber eher generell) speichern? Der String ist dabei natürlich nicht das Problem, sondern die "Class".

Map<Class, String> classes;

Und wie kann ich die Daten später analog zu classes.get(typeToFind.getClass()); in der DB finden?

Für einen hilfreichen Vorschlag wäre ich dankbar.
 
Eine Class Instanz ist nur gültig innerhalb eines laufenden JVM Prozesses und kann als solche nicht direkt in einer Datenbank persistiert werden, da sie ja auch Referenzen auf JVM-eigene Laufzeitstrukturen besitzt. Du kannst aber den vollqualifizierten Namen der Klasse in der Datenbank als Zeichenkette speichern und später z.B. per Class.forName(...) von der Zeichenkette zu einer Class Instanz wieder auflösen.
Vorschlag für eine DDL (für eine relationale Datenbank):
Code:
CREATE TABLE class_to_string_map (
  class_key    VARCHAR, -- may be null?
  string_value VARCHAR, -- may be null?
  UNIQUE(class_key)
);
 

Neue Themen


Zurück
Oben