Hibernate 4.1.2.FINALE de la Désactivation contextuelle LOB création createClob() la méthode la jeta erreur , champ Blob
Je veux créer un champ BLOB avec hibernate/postgresql 9.1.1
Pourquoi dois-je voir ce message dans les logs:
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
Je sais que ce n'est pas une erreur.
Hibernate 4.1 documentation:
"@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."
Je déclare mon domaine comme ceci:
@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;
}
Mais dans la base de données de ses créer comme un champ de texte:
"ACTA_INCREMENTOSUSTITUCION" text
Que puis-je faire?, Je veux créer un octet champ ou quelque chose de similaire.
OriginalL'auteur Vodo-Siosk Baas | 2012-05-01
Vous devez vous connecter pour publier un commentaire.
Depuis le vous êtes en utilisant
text
dans la base de données, vous devriez être en utilisantCLOB
type dans la classe POJO. Si vous souhaitez mapper cela, il suffit d'ajouter une propriété dans votre POJO comme ci-dessous,Maintenant, selon vos besoins, vous pouvez convertir cette Clob à un byte[] comme dit ici.
OriginalL'auteur ManuPK