如何让字段成为BLOB而不是TINYBLOB?
我的映射如下:
private byte[] ImageBytes;
public BufferedImage getImage() {
InputStream in = new ByteArrayInputStream(ImageBytes);
try {
return ImageIO.read(in);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public void setImage(BufferedImage image) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
ImageIO.write(image, "PNG" /* for instance */, out);
} catch (IOException e) {
throw new RuntimeException(e);
}
ImageBytes = out.toByteArray();
}
它会导致Hibernate在MySQL中创建一个不适合图像的TINYBLOB字段。
如何让它使用BLOB?
以下答案
@Lob(type = LobType.BLOB)
不起作用,因为@Lob
注释在我的库中没有参数。
此外,我不想使用特定于ORM或DBMS的注释。
答案 0 :(得分:2)
你可以这样试试;
@Lob
@Column(name="IMAGE", nullable=false, columnDefinition="blob")
private byte[] imageBytes;
确保您的图片数据类型为BLOB
。