モデルのデータ型で BLOB を使用していません。代わりに byte[] を使用しました。データベースでは自動的に BLOB に変換されます。
私のサンプルモデルを参照できます。
package models;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Type;
import org.joda.time.DateTime;
import play.db.jpa.GenericModel;
import com.google.gson.annotations.Expose;
@Entity
public class Memorandum extends GenericModel{
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid2")
@Expose
public String id;
@Lob
public String details;
public String filename;
@Type(type="org.joda.time.contrib.hibernate.PersistentDateTime")
public DateTime datePosted;
public byte[] attachment;
public String subject;
}
私の保存コントローラー
public static void save_memo(Memorandum memo,File attachment)
{
memo.datePosted = DateTime.now();
if(attachment!=null)
{
memo.attachment = IO.readContent(attachment);
memo.filename = attachment.getName();
}
memo.save();
index();
}
byte[] は、データベースでは BLOB 形式になります。