Hibernate campos blob/text Mysql

10 respostas
antoniopopete

Como mapear via hibernate annotations esss tipos de campos?
Blob e text?

Aproveitando, alguém já usou o hibernate search em cima de um campo text?

10 Respostas

fiaux

Usa a annotation @Lob.

antoniopopete

Somente precisa sinalizar isso?Tanto para Clob como para Blob?
E os campos?Coloquei como sendo ClobImpl e BlobImpl do proprio hibernate.

fiaux

Bom, eu usei assim, mas meu caso foi apenas campo text do mysql. Mas parece que é para large object de maneira geral.

javax.persistence
Annotation Type Lob

@Target(value={METHOD,FIELD})

@Retention(value=RUNTIME)

public @interface Lob

Specifies that a persistent property or field should be persisted as a large object to a database-supported large object type. The Lob annotation may be used in conjunction with the Basic annotation. A Lob may be either a binary or character type.

The Lob type is inferred from the type of the persistent field or property, and except for string and character-based types defaults to Blob.

Example:

<a class="mention" href="/u/lob">@Lob</a> <a class="mention" href="/u/basic">@Basic</a>(fetch=LAZY)

@Column(name=“REPORT”)

protected String report;

Since:
Java Persistence 1.0

antoniopopete

Você usou que tipo de campo text?
Text,mediumtext ou bigtext?
Pode falar um pouco de sua experiência com esses campos?
Voce ja gerou o banco a partir das anotações/

fiaux

Usei campo text, anotei o método get do campo com @Lob, simplesmente isso, funciona numa boa, sem problemas. Nunca gerei o banco a partir das anotações.

antoniopopete

Eu estou querendo mapear com campos blob (bytes[]).
Como ficaria esse mapeamento?Campo text do mysql, mapeei como string mesmo.

fiaux

Seu atributo na classe vai ser um array de bytes?

antoniopopete

Tinha mapeado como BlobImpl ou SerializableBlob do hibernate, mas deu erro. Diz que não consegue usar o set do atributo.
Pensei em colocar como String porque li que o Mysql armazena blob como texto, só que não é sensitive.Mas não tenho certeza se vai funcionar (só posso testar em casa)

H

[url]http://docs.jboss.org/ejb3/app-server/HibernateAnnotations/reference/en/html_single/index.html[/url]

Tem uma parte especifica para esse mapeamento

@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
public String getFullText() {
    return fullText;
}

@Lob 
public byte[] getFullCode() {
    return fullCode;
}
T

OLá alguém tem um exemplo disto usando xml pra fazer o mapeamento do hibernate…

estou usando xml… e estou com o mesmo problema…

Criado 15 de maio de 2008
Ultima resposta 25 de nov. de 2008
Respostas 10
Participantes 4