Erro a tenar salvar data no banco de dados

4 respostas
N

Colegas,
ao tentar salvar uma data no banco de dados, recebo a seguinte mensagem:

log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.NoClassDefFoundError: Timestamp
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
	at java.lang.Class.getDeclaredMethods(Unknown Source)
	at org.hibernate.annotations.common.reflection.java.JavaXClass.getDeclaredMethodProperties(JavaXClass.java:112)
	at org.hibernate.annotations.common.reflection.java.JavaXClass.getDeclaredProperties(JavaXClass.java:129)
	at org.hibernate.annotations.common.reflection.java.JavaXClass.getDeclaredProperties(JavaXClass.java:121)
	at org.hibernate.cfg.InheritanceState.determineDefaultAccessType(InheritanceState.java:263)
	at org.hibernate.cfg.InheritanceState.getElementsToProcess(InheritanceState.java:224)
	at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:775)
	at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3788)
	at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3742)
	at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1410)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843)
	at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842)
	at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
	at TesteFornecedor.main(TesteFornecedor.java:17)
Caused by: java.lang.ClassNotFoundException: Timestamp
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 21 more

Como faço para resolver este problema.
Obrigado.

4 Respostas

B

Qual formato da data que você está passando? E no banco de dados?

N

fiz assim.

Forncedor frn = new forncedor
frn.setDtCadastro(new Date())

manager.persist(frn)

Usei o entitymanager

Meu banco e o postgres, to usando o JPA ele ira criar esta tabela e inserir essa data. Mas ai deu esse erro.

pmlm

Deves ter em algum lado Timestamp quando deverias ter java.sql.Timestamp

N

Abaixo minhas classes

Classe Usuario

package com.agenciafretebem.model;

import java.io.Serializable;

import javax.persistence.*;
import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.br.CPF;

import com.agenciafretebem.tipo.StatusEntidade;


import static javax.persistence.EnumType.STRING;

@Entity
@Table(name="usuario")
@Inheritance(strategy=InheritanceType.JOINED)
public class Usuario implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(name="SEQ_USUARIO", sequenceName="SEQ_USUARIO_ID", allocationSize=1) 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator="SEQ_USUARIO")	
	@Column(name="idusuario")
	private Integer idusuario;
	
	@NotNull
	@Column(nullable=false, length=100)
	private String nome;
	
	@NotNull
	@Column(nullable=false, length=100)
	private String senha;

	@NotNull
	@Column(nullable=false, length=100)
	private String bairro;

	@NotNull
	@Column(nullable=false, length=14)
	private String celular;

	@NotNull
	@Column(nullable=false, length=9)
	private String cep;

	@NotNull
	@Column(nullable=false, length=50)
	private String cidade;

	@NotNull
	@Column(length=100)
	private String complemento;

	
	@CPF
	@NotNull
	@Column(nullable=false, length=14)
	private String cpf;

	@NotNull
	@Column(nullable=false, length=100)
	private String email;

	private Integer numero;

	private String rua;

	@NotNull
	@Column(nullable=false, length=14)
	private String telefone;
	@NotNull
	@Column(nullable=false, length=2)
	private String uf;
	
	@Enumerated(STRING)
	private StatusEntidade ativo;

		
	//uni-directional one-to-one association to Grupo
	@OneToOne
	@JoinColumn(name="grupo_id")
	private Grupo grupo;


	public Usuario() {
	}

Classe fornecedor que herda de Usurio

package com.agenciafretebem.model;


import javax.persistence.*;
import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.br.CNPJ;

import java.util.Date;

@Entity
@Table(name="fornecedor")
@PrimaryKeyJoinColumn(name="idfornecedor", referencedColumnName = "idusuario")
public class Fornecedor extends Usuario {
	
	private static final long serialVersionUID = 1L;

	@NotNull
	@Column(length=7, nullable=false,unique=true)
	private String chaveacesso;


	@Temporal(TemporalType.DATE)
	private Date dtcadastro;

	
	@Temporal(TemporalType.DATE)
	private Date dtencerramento;
	
	@CNPJ
	@Column(name="CNPJ")
	private String cnpj;



	public Fornecedor() {
	}
	
	public String getChaveacesso() {
		return chaveacesso;
	}

	public void setChaveacesso(String chaveacesso) {
		this.chaveacesso = chaveacesso;
	}

	public Date getDtcadastro() {
		return dtcadastro;
	}

	public void setDtcadastro(Date dtcadastro) {
		this.dtcadastro = dtcadastro;
	}

	public Date getDtencerramento() {
		return dtencerramento;
	}

	public void setDtencerramento(Date dtencerramento) {
		this.dtencerramento = dtencerramento;
	}

	public String getCnpj() {
		return cnpj;
	}

	public void setCnpj(String cnpj) {
		this.cnpj = cnpj;
	}	

}

Classe para fazer o teste

import java.util.Date;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

import com.agenciafretebem.model.Fornecedor;
import com.agenciafretebem.model.Grupo;
import com.agenciafretebem.tipo.StatusEntidade;



public class TesteFornecedor {
	public static void main(String[] args) {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("AgenciaFreteBem");
		EntityManager manager = factory.createEntityManager();
		EntityTransaction trx = manager.getTransaction();
		trx.begin();
			
		Grupo g = manager.find(Grupo.class, 1);
		Fornecedor forn = new Fornecedor();	
		
		forn.setNome("Valter Trasporte");		
		forn.setSenha("1234");
		forn.setBairro("Pitangui");
		forn.setCelular("[telefone removido]");
		forn.setCep("36099874");
		forn.setCidade("JCaratinga");
		forn.setComplemento("Bloco 4");
		forn.setCpf("[CPF removido]");
		forn.setEmail("[email removido]");
		forn.setNumero(222);		
		forn.setRua("Rua 13");
		forn.setTelefone("[telefone removido]");
		forn.setUf("MG");;
		forn.setAtivo(StatusEntidade.S);;
		forn.setGrupo(g);		
		
		forn.setChaveacesso("F510023");
		forn.setDtencerramento(new Date());
		forn.setDtcadastro(new Date());
		forn.setCnpj("[telefone removido]");
		
		manager.persist(forn);
		trx.commit();
	}
}

Acho que ficou melhor de entender!!

Criado 18 de novembro de 2014
Ultima resposta 19 de nov. de 2014
Respostas 4
Participantes 3