hibernate/postgresql 9.1.1 で BLOB フィールドを作成したい
ログに次のメッセージが表示されるのはなぜですか。
INFO [org.hibernate.engine.jdbc.internal.LobCreatorBuilder] (MSC service thread 1-5)
HHH000424: Disabling contextual LOB creation as createClob() method threw error :
java.lang.reflect.InvocationTargetException
これがエラーではないことはわかっています。
Hibernate 4.1 のドキュメント:
"@Lob indicates that the property should be persisted in a Blob or a Clob depending
on the property type: java.sql.Clob, Character[], char[] and java.lang.String will be
persisted in a Clob. java.sql.Blob, Byte[], byte[] and Serializable type will be persisted in a Blob."
私は自分のフィールドを次のように宣言します:
@Lob
@Type(type = "org.hibernate.type.MaterializedClobType")
@Basic(fetch=javax.persistence.FetchType.LAZY)
@Column(name = "`ACTA_CERTIFICACION`")
public byte[] getActacertificacion() {
return actacertificacion;
}
/**
* @param actacertificacion
* @uml.property name="actacertificacion"
*/
public void setActacertificacion(byte[] actacertificacion) {
this.actacertificacion = actacertificacion;
}
しかし、データベースでは、テキスト フィールドのように作成されます。
"ACTA_INCREMENTOSUSTITUCION" text
どうすればいいですか?バイトフィールドなどを作成したいです。