Я пытаюсь сохранить java ArrayList в базе данных (H2), установив его в качестве большого двоичного объекта для последующего извлечения. Если это плохой подход, скажите, пожалуйста, - я не смог найти много информации об этой области.
У меня есть столбец типа Blob в базе данных, и Hibernate сопоставляется с этим с помощью java.sql.Blob. Код, с которым я борюсь, это:
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);
}
Объект, который я пытаюсь сохранить в большой двоичный объект (plan.drawingPane21.pointList
), имеет тип ArrayList<DrawingDot>
, DrawingDot
- пользовательский класс, реализующий Serializable
.
Мой код не работает в строке drawingBlob.setBytes(0, buff);
с NullPointerException
.
Помощь оценена.