일부 바이너리 데이터를 저장하기 위해 최대 절전 모드 @Entity를 java.sql.Blob와 함께 사용하려고합니다. Storing은 어떤 예외도 발생시키지 않습니다 (그러나 실제로 바이트를 저장하는지는 확실하지 않습니다). 그러나 읽기는 않습니다. 여기에 내 테스트는 다음과 같습니다최대 절전 모드에서 java.sql.Blob 스트림을 가져 오기
java.sql.SQLException: could not reset reader
at org.hibernate.engine.jdbc.BlobProxy.getStream(BlobProxy.java:86)
at org.hibernate.engine.jdbc.BlobProxy.invoke(BlobProxy.java:108)
at $Proxy81.getBinaryStream(Unknown Source)
...
이유 :
는@Test
public void shouldStoreBlob() {
InputStream readFile = getClass().getResourceAsStream("myfile");
Blob blob = dao.createBlob(readFile, readFile.available());
Ent ent = new Ent();
ent.setBlob(blob);
em.persist(ent);
long id = ent.getId();
Ent fromDb = em.find(Ent.class, id);
//Exception is thrown from getBinaryStream()
byte[] fromDbBytes = IOUtils.toByteArray(fromDb.getBlob().getBinaryStream());
}
그래서 예외를 throw? 여기서 DB 형식의 바이트를 읽지 않아야합니까? 그리고 나는 그것을하기 위해 무엇을 할 수 있습니까?
우리는이 질문에 답하기 전에 어떤 예외가 발생했는지 알아야합니다. – adarshr
예외가 추가되었습니다. – amorfis