/ / Wie benutze ich blob mit ebean & play 2? - blob, playframework-2.0, ebean

Wie verwende ich Blob mit Ebean & Play 2? - Blob, playframework-2.0, Ebean

Dies ist die Entität, die den Blob-Typ enthält:

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

.......

@Constraints.Required
private Blob image;

.......
}

$ play -DapplyEvolutions.default = true run

Ich habe Fehler wie die folgenden:

[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]

Wie kann ich die Änderung vornehmen, damit der Blob-Typ erkannt werden kann?

Antworten:

10 für die Antwort № 1

Erschaffen blob Bei Ebean müssen Sie ein Byte-Array mit verwenden @Lob Anmerkung

@Lob
public byte[] image;

Wahrscheinlich müssen Sie das File <-> - Byte-Array konvertieren. Vielleicht ist es einfacher, Dateien im Dateisystem zu speichern? (Neben dem Speichern von Dateien in FS ist dies nur billiger als in DB)

Wenn Sie spezielle Zugriffsbeschränkungen benötigen, können Sie mit einem eigenen Controller die Berechtigungen überprüfen und die Datei von der Festplatte anhand des in der Datenbank gespeicherten Pfads streamen.