JPA:我应该在同一个表中使用fetch Lazy存储一个BLOB,还是应该将它存储到另一个表中并获取一对一关系的懒惰

Tha*_*ham 6 java jpa blob

我有一个表格Image来保存图像信息.我也想存储图像本身.我也应该这样

1.将Blob存储在同一个图像表中,并将其设置为惰性,如下所示

@Basic(optional = false, fetch = FetchType.LAZY)
@Lob
@Column(name = "IMAGE_BLOB", length=100000)    //This will generate MEDIUMBLOB
private byte[] imageBlob;
Run Code Online (Sandbox Code Playgroud)

要么

2.创建一个ImageBlob与之OneToOne关系的另一个表Image,并获取懒惰的关系

@OneToOne(cascade = CascadeType.ALL, mappedBy = "image", fetch=FetchType.LAZY)
private ImageBlob imageBlob;
Run Code Online (Sandbox Code Playgroud)

这两种技术在性能方面是否相同?

Jam*_*mes 3

两者应该产生相同的性能,但对于大斑点,我建议使用第二种。

数据库对 blob 可能很挑剔,最好将它们隔离到自己的对象。这将使您能够更好地控制斑点。