Atributo string "longo"no hibernate

Caros, boa noite.
Tenho uma aplicação Web que receberá uma string “Longa” (tipo notícia) e gostaria de saber como declarar para salvar no Bd.
Utilizo Hibernate, VRaptor e Postgree.
Muito obrigado :smiley:

Você pode salvar esse campo como BLOB.
Neste link há um exemplo que você pode usar como referência: http://www.hibernate.org/73.html

e nesses métodos, ao invés de byte, converte para String, tanto na hora de salvar quanto na hora de recuperar

    /**
     * @see net.sf.hibernate.UserType#nullSafeGet(java.sql.ResultSet, java.lang.String[], java.lang.Object)
     */
    public Object nullSafeGet(ResultSet rs, String[] names, Object owner)
        throws HibernateException, SQLException {
            
        String dbValue = (String) Hibernate.STRING.nullSafeGet(rs, names[0]);
        
        if ( dbValue != null ) {
            return dbValue;
        }
        else {
            return null;
        }

    }

    /**
     * @see net.sf.hibernate.UserType#nullSafeSet(java.sql.PreparedStatement, java.lang.Object, int)
     */
    public void nullSafeSet(PreparedStatement st, Object value, int index)
        throws HibernateException, SQLException {
            
        if ( value != null ) {
            String v = (String) value;
            Hibernate.STRING.nullSafeSet(st, v, index);
        }
        else {
            Hibernate.STRING.nullSafeSet(st, value, index);
        }

    }

Caro marcoswp3x, muito obrigado pela resposta.
Quando declaro como Blob o Postgre declara o campo
oid é dessa forma mesmo?
Muito obrigado :smiley:

import java.sql.Blob;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;





@Entity   
public class Produtoaux_sm  {
	

	 @Id     
	@GeneratedValue(strategy=GenerationType.IDENTITY)       
	private Long id_produtoaux;
	
	 
	 
	
	    @Column(length=6)
        private String porcao;
	    @Column(length=7)
        private String Kal;
	   
		@Column(length=60)
		private String descricao;
		private Blob dica;

ahh postgre faz um tratamento tosco ehehe…

ele cria esse oid, q na verdade é um numérico, e esse vai ser o código de uma tabela com campos blobs de verdade.

pra fazer gravar aí acho q tem q fazer um tratamento especial, mas agora não lembro de cabeça como faz isso ehehe…
dá uma pesquisada, amanhã eu posto um exemplo q fiz uma vez.

[quote=marcoswp3x]ahh postgre faz um tratamento tosco ehehe…

ele cria esse oid, q na verdade é um numérico, e esse vai ser o código de uma tabela com campos blobs de verdade.

pra fazer gravar aí acho q tem q fazer um tratamento especial, mas agora não lembro de cabeça como faz isso ehehe…
dá uma pesquisada, amanhã eu posto um exemplo q fiz uma vez.[/quote]

Será criada mais uma tabela no Postgree ? Se vc possuir o código será bem interessante, pois
fiz buscas aqui e no google e só encontrei mais dúvidas.
Valeu e muito obrigado. :smiley:

então, ele faz isso sim, cria mais uma tabela e tals.

eu fiz dessa forma pra gravar como byte em postgree:

	public int[] sqlTypes() {
		final Object o = getDriver() //aki vc cria um método pra retornar o driver utilizado pela conexão atual
		if (Drivers.POSTGRE == o) {
			return new int[]{Types.VARBINARY};
		}
		return new int[]{Types.BLOB};
	}

Boa tarde marcoswp3x.
Qual seria o tipo declarar na classe java para utilizar o Text no Postgree?
como “Text” ao rodar GeraBanco ela reclama desse tipo.
Para testar a viabilidade do campo Text no Postgree, criei o campo dica2 como
string e rodei a Gera Banco, fui no PostGree e alterei de varchar para text e coloquei
um texto grande pela aplicação e funcionou bem.
Dessa forma gostaria de saber o tipo correto para fazer mais testes.
Muito obrigado

@Entity   
public class Produtoaux_sm  {
	

	 @Id     
	@GeneratedValue(strategy=GenerationType.IDENTITY)       
	private Long id_produtoaux;
	
	    @Column(length=6)
        private String porcao;
	    @Column(length=7)
        private String Kal;
	   
		@Column(length=60)
		private String descricao;
		private Text dica;

então, eu declaro como byte[]

tipo:

private byte[] flCube;

e no getter eu defino assim:

@Lob
	@Column(length = 7500, name = "FLCUBE")
	@Type(type = "org.blabla.BinaryBlobType")
	public byte[] getFlCube() {
		return this.flCube;
	}