Hi,
ich bin ziemlicher JPA Neuling und möchte meine Swing-Applikation auf EclipseLink umstellen. Nach viel ausprobieren und googeln bin ich auch schon um etliche Erfahrung reicher, stehe aber noch vor der Frage, wie ich Bilder aus einer Datenbank laden kann, so dass sie in der EntityKlasse aber nur durch eine SoftReference erreichbar sind
Konkret sieht es so aus:
Meine Datenbank ist eine JavaDb, in der es unter anderem eine Tabelle pictures:
In der entity Klasse soll nun das Thumbnail einerseits Lazy initialisiert werden, andererseits soll es nur in einer SoftReference gespeichert werden, da ich nicht alle >10.000 Bilder im Speicher halten kann.
Jetzt stellt sich mir nur die Frage, wie ich das am schlauesten machen kann.
Dass das Bild trotz OneToOne lazy geladen wird, scheint über @OneToOne zu gehen. Aber dann ist das Thumb (als byte array) in der Entity doch fest referenziert, oder? Es sollte ja eigentlich in eine SoftReference wandern, so dass ich auch 10.000 Entities im Speicher halten kann ohne alle Bilder auch halten zu müssen.
Hat da jemand einen Tip für mich?
Besten Dank und Grüße,
locked
ich bin ziemlicher JPA Neuling und möchte meine Swing-Applikation auf EclipseLink umstellen. Nach viel ausprobieren und googeln bin ich auch schon um etliche Erfahrung reicher, stehe aber noch vor der Frage, wie ich Bilder aus einer Datenbank laden kann, so dass sie in der EntityKlasse aber nur durch eine SoftReference erreichbar sind
Konkret sieht es so aus:
Meine Datenbank ist eine JavaDb, in der es unter anderem eine Tabelle pictures:
SQL:
CREATE TABLE pictures (
id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
album_id INTEGER NOT NULL CONSTRAINT pic2album_fk REFERENCES albums(id) ON DELETE CASCADE,
filename VARCHAR(32672) NOT NULL,
thumb BLOB,
PRIMARY KEY (id)
);
In der entity Klasse soll nun das Thumbnail einerseits Lazy initialisiert werden, andererseits soll es nur in einer SoftReference gespeichert werden, da ich nicht alle >10.000 Bilder im Speicher halten kann.
Jetzt stellt sich mir nur die Frage, wie ich das am schlauesten machen kann.
Dass das Bild trotz OneToOne lazy geladen wird, scheint über @OneToOne zu gehen. Aber dann ist das Thumb (als byte array) in der Entity doch fest referenziert, oder? Es sollte ja eigentlich in eine SoftReference wandern, so dass ich auch 10.000 Entities im Speicher halten kann ohne alle Bilder auch halten zu müssen.
Hat da jemand einen Tip für mich?
Besten Dank und Grüße,
locked