我想用休眠将一些文件内容保存到数据库中,我的休眠模型是:
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
上面有个a。
它运行良好,但问题是如果文件很大,例如 10M 或 20M,它将使用大量内存,这在生产中是一个问题。
我想知道是否有任何方法可以使用低内存,比如使用 astream
而不是byte[]
?但我不确定什么是正确的解决方案。