ang*_*okh 5 blob ebean playframework-2.0
这是实体包含blob类型:
@Entity
@Table(name="image_info")
public class ImageInfo extends Model {
.......
@Constraints.Required
private Blob image;
.......
}
Run Code Online (Sandbox Code Playgroud)
$ play -DapplyEvolutions.default = true run
我收到如下错误:
[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]
Run Code Online (Sandbox Code Playgroud)
我怎样才能进行更改,以便可以识别blob类型?
bie*_*ior 10
要blob使用Ebean 创建,您需要使用带@Lob注释的字节数组
@Lob
public byte[] image;
Run Code Online (Sandbox Code Playgroud)
很可能你需要在File < - >字节数组之间进行转换,所以也许在文件系统中存储文件更容易?(除了在FS中存储文件比在DB中便宜)
如果需要特殊访问限制,可以使用自己的控制器检查权限,并按存储在DB中的路径从磁盘流式传输文件.