J'essaie de sauvegarder une ArrayList java dans une base de données (H2) en le définissant comme un blob, pour une récupération ultérieure. Si c'est une mauvaise approche, veuillez dire - je n'ai pas été en mesure de trouver beaucoup d'informations sur ce domaine.Difficulté de configuration ArrayList à java.sql.Blob à enregistrer dans la base de données en utilisant hibernate
J'ai une colonne de type Blob dans la base de données, et Hibernate mappe avec java.sql.Blob. Le code que je suis aux prises avec est:
Drawings drawing = new Drawings();
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = null;
oos = new ObjectOutputStream(bos);
oos.writeObject(plan.drawingPane21.pointList);
byte[] buff = bos.toByteArray();
Blob drawingBlob = null;
drawingBlob.setBytes(0, buff);
drawing.setDrawingObject(drawingBlob);
} catch (Exception e){
System.err.println(e);
}
L'objet que j'essaie de sauver dans un blob (plan.drawingPane21.pointList
) est de type ArrayList<DrawingDot>
, DrawingDot
étant une classe personnalisée mise en œuvre Serializable
. Mon code échoue sur la ligne drawingBlob.setBytes(0, buff);
avec un NullPointerException
.
Aide appréciée.