Dúvida com campo imagem no JPA

4 respostas
R

Galera,tenho uma tabela com um campo bytea no Postgres mapeado para uma Entity,mas não to entendendo pq esse código não funciona,não apresenta erro mas tbm n insere.Segue o código abaixo:

Entity:

@Entity
@Table(name="tb_imagem")
public class Imagem implements Serializable {
	
	@Id  
	@Column 
	@SequenceGenerator(name = "img", sequenceName = "tb_imagem_id_seq",allocationSize=1)  
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "img")  
	Long id;
	
	@Lob
	@Column(columnDefinition="BYTEA")
	byte[]imagem;

	//gets e sets

Teste:

public static void main(String[] args) throws SQLException {
		try {
			EntityManagerFactory emf = Persistence.createEntityManagerFactory("myPU");
			EntityManager em = emf.createEntityManager();
			Imagem img = new Imagem();
			img.setImagem(recuperaImagem());//aqui o array de byte ta vindo ok
			em.persist(img);
		}catch(Exception e){
			e.printStackTrace();
		}
	}

Saida:

Hibernate: select nextval ('tb_imagem_id_seq')

Onde posso estar errando?

4 Respostas

R

Tava faltando iniciar e comitar a transação,mas agora ta dando esse erro:

ERRO: coluna "imagem" é do tipo bytea mas expressão é do tipo bigint
C

Qual o tipo de variável que está no seu banco de dados para este campo?

R

resolvido,foi só tirar a anotação @Lob e funcionou blz.

vhmolinar

Funcionou comigo também tirando o @Lob.

Engraçado que já funcionava antes com o @Lob.

Criado 20 de julho de 2011
Ultima resposta 24 de jan. de 2013
Respostas 4
Participantes 3