我想用hibernate将一些文件内容保存到数据库,我的hibernate模型是:
import javax.persistence.*;
import java.io.Serializable;
import static javax.persistence.AccessType.FIELD;
@Entity
@Access(FIELD)
@Table(name = "MYFILE")
public class MyFile implements Serializable {
@Id
@SequenceGenerator(name = "MYSEQ", sequenceName = "MYSEQ", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MYSEQ")
@Column(name = "ID")
private Long id;
@Column(name = "FILE_CONTENT")
@Lob
private byte[] fileContent;
// getters and setters
}
您可以看到fileContent
字段的类型为byte[]
,其上有@Lob
。
它运行良好,但问题是如果文件很大,例如10M或20M,它将使用大量内存,这是生产中的一个问题。
我想知道是否有任何方法可以使用低内存,比如使用stream
代替byte[]
?但我不确定什么是正确的解决方案。