2012-05-29 7 views
5

이것은 실체는 BLOB 유형이 포함되어blob을 ebean & play 2와 함께 사용하는 방법은 무엇입니까?

[warn] c.j.b.ConnectionPartition - BoneCP detected an unclosed connection and will now attempt to close it for you. You should be closing this connection in your application - enable connectionWatch for additional debugging assistance. 
[error] c.a.e.s.t.r.ImmutableMetaFactory - Was unable to use reflection to find a constructor and appropriate getters forimmutable type interface java.sql.Blob. The errors while looking for the getter methods follow: 
[error] c.a.e.s.d.p.DeployCreateProperties - Error with models.ImageInfo field:image 
java.lang.RuntimeException: Unable to use reflection to build ImmutableMeta for interface  java.sql.Blob. Associated Errors trying to find a constructor and getter methods have been logged 
at com.avaje.ebeaninternal.server.type.reflect.ImmutableMetaFactory.createImmutableMeta(ImmutableMetaFactory.java:71) ~[ebean.jar:na] 
at com.avaje.ebeaninternal.server.type.DefaultTypeManager.recursiveCreateScalarTypes(DefaultTypeManager.java:227) ~[ebean.jar:na] 
at com.avaje.ebeaninternal.server.deploy.parse.DeployCreateProperties.createProp(DeployCreateProperties.java:357) [ebean.jar:na] 
at com.avaje.ebeaninternal.server.deploy.parse.DeployCreateProperties.createProp(DeployCreateProperties.java:377) [ebean.jar:na] 
at com.avaje.ebeaninternal.server.deploy.parse.DeployCreateProperties.createProperties(DeployCreateProperties.java:168) [ebean.jar:na] 
at com.avaje.ebeaninternal.server.deploy.parse.DeployCreateProperties.createProperties(DeployCreateProperties.java:94) [ebean.jar:na] 

가 어떻게 변화를 만들 수 :

@Entity 
@Table(name="image_info") 
public class ImageInfo extends Model { 

    ....... 

    @Constraints.Required 
    private Blob image; 

    ....... 
} 

$이 -DapplyEvolutions.default = 사실 실행

내가 같은 오류를 가지고 플레이를 다음 그래서 BLOB 타입을 인식 할 수 있습니까? 그래서 아마이 파일 시스템에서 파일을 저장하는 것이 더 쉽습니다> 바이트 배열 - Ebean와 blob을 만들려면

답변

10

당신은

@Lob 
public byte[] image; 

대부분의 아마 당신이 파일 < 사이의 변환해야합니다 @Lob 주석 바이트 배열을 사용할 필요가 ? (FS에 파일을 저장하는 것 외에도 DB에서보다 저렴합니다.)

고유 한 컨트롤러를 사용하여 권한을 확인하고 DB에 저장된 경로별로 디스크에서 파일을 스트리밍 할 수 있습니다.

+0

감사합니다. Heroku에서 'ERROR : type "blob이"존재하지 않습니다 "라는 오류가 발생했습니다. 내 로컬에서 '실행 실행'을 사용해 보았지만 작동합니다. 하지만 헤로쿠는 아니야. – angelokh

+0

Heroku는 기본적으로 Postgres를 사용합니다. 아마도 MySQL을 사용하여 localy를 개발하고있을 것입니다 (참고 : 나는 단지 추측하려고합니다). Postgres [BLOB를 지원하지 않습니다] (http://www.postgresql.org/docs/current/interactive/datatype-binary.html) – biesior