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
[code]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
}
[/code];
ClienteDAO.java
[code]// 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@terra.com.br");
cliente.setUsuario("Usuario");
cliente.setSenha("senha");
em.getTransaction().begin();
em.persist(cliente);
em.getTransaction().commit();
em.close();
emf.close();
}[/code]
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