거대한 이진 데이터를 데이터베이스에 저장하고 싶습니다. 클라이언트는 콘텐츠 크기, 생성 날짜 등 과 같은 메타 데이터를 검사하고 콘텐츠를 스트리밍 할 수 있어야합니다.DB에서 클라이언트로 거대한 데이터를 스트리밍하는 방법
JPA를 사용하면 메타 데이터를 지속적으로 유지할 수 있습니다.
@Entity
public class MyData {
@Id
private String name;
private Timestamp creationDate;
private long contentSize;
콘텐츠 모델을 만드는 방법은 무엇입니까? 내가
byte[] content;
을 사용한다면 전체 콘텐츠는 원치 않는 인 메모리에 저장해야합니다. 최대 절전 모드, 다음 작동하지만 다른 JPA - 공급자, 예는 OpenJPA, 와
는content
가 지속도
@Transient
을 주석도 아닌 불평.
@Lob
@Basic(fetch=FetchType.LAZY)
private java.sql.Blob content;
질문 : 바이트 배열의 전체 내용을 저장할 필요없이 을 스트리밍 할 수있는 휴대용 솔루션이 있습니까?
휴대용? 아니. 그 점에 대한 JPA 스펙에는 아무것도 없습니다. 모든 JPA 제공 업체는 자체 지원되는 유형과이를 지원하는 방법을 지원합니다. "byte []"는 적절한 유형이 아니지만 현재 존재하는 JDBC 드라이버에 묶여 있기 때문에 Blob도 마찬가지입니다. Reader 나 InputStream과 같은 것이 더 의미가 있습니다 ... JPA 공급자가 지원한다면 – DN1