JavaBean, com atributo do Tipo Oid do PGSQL para inserir no banco

1 resposta
Romildo_Paiter

E ai pessoal, seguinte estou aqui tentando fazer uma pagina de cadastro de empresa onde o cara tem que enviar a IMAGEM do LOGOTIPO dele.

Estou usando Struts e Hibernate, bom vou postar parte do código aqui para vocês assimilaram o que eu estou tentando fazer.

No banco eu criei um CAMPO com o tipo OID, por ler em alguns lugar e falarem que é mais fácil fazer o envio e a extração nesse formato. Não sei se o mais correto e o mais eficiente.

O problema é que o Hibernate no momento de inserir esses dados ele avisa sobre o Objeto cliente do JAVABEAN que criei não esta correto para inserir esse tipo de dado.

Bem lá vai os código:

Cliente.java

import java.io.Serializable;
import java.sql.Date;
import java.sql.Timestamp;

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

import org.postgresql.core.Oid;

@Entity
@Table (name="clientes")
public class Cliente implements Serializable {
	
	private static final long serialVersionUID = 1L;
	/**
	 * 
	 */
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)	
	private Long id_cli;
	
	private String empresa;
	private String contato;
	private String endereco;
	private String complemento;
	private int    numero;
	private String bairro;
	private String estado;
	private int    cep;
	private String email;
	private String telefone;
	private String celular;
	private String usuario;
	private String senha;
	
	
	private Oid logotipo;
	
	@Column(name="libera_logotipo")
	private Boolean liberaLogotipo;
	
	private Date datacad;
	
	private Boolean liberado;
	
	@Column(name="data_liberado")
	private Timestamp dataLiberado;
	
	private Boolean status;
	private char   deleted;

       // depois disso vem os Getter and Setter

}
;

ClienteDAO.java

// somente exemplo interno
	public static void main(String[] args) 
	{
		EntityManagerFactory emf = Persistence
			.createEntityManagerFactory("paiterBrindes");

		EntityManager em = emf.createEntityManager();
		
		Cliente cliente = new Cliente();
		cliente.setEmpresa("Grupo Paiter de Tecnlogia");
		cliente.setContato("Romildo Jozue Paiter");
		cliente.setEndereco("Rua Naçoes Unidas");
		cliente.setEmail("[email removido]");
		cliente.setUsuario("Usuario");
		cliente.setSenha("senha");
		
		em.getTransaction().begin();
		em.persist(cliente);
		em.getTransaction().commit();
		
		em.close();
		emf.close();
	}
Agora o Expetion gerado
Caused by: org.hibernate.MappingException: Could not determine type for: org.postgresql.core.Oid, at table: clientes, for columns: [org.hibernate.mapping.Column(logotipo)]
	at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:292)
	at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:276)
	at org.hibernate.mapping.Property.isValid(Property.java:207)
	at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:458)
	at org.hibernate.mapping.RootClass.validate(RootClass.java:215)
	at org.hibernate.cfg.Configuration.validate(Configuration.java:1149)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1334)
	at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
	... 4 more

Obrigado Pessoal..

att

Romildo

1 Resposta

neto.jpa

Cara não consegui passar um oid mas sim bytea. Dá uma olhadinha ae:

http://www.guj.com.br/posts/list/198735.java#1001836

http://www.guj.com.br/posts/list/136313.java#739279

Talvez algum desses tópicos te ajude.

Criado 26 de fevereiro de 2010
Ultima resposta 26 de fev. de 2010
Respostas 1
Participantes 2