Olá,
não estou visualizando onde está dando erro referente as tabelas com anotações hibernate
ao executar esse main apresenta o erro abaixo.
Não entendi o que está faltando entre as classes cliente e endereco pois no banco estão 1 cliente para 1 endereco
Se alguém puder me ajudar agradeceria.
abs
public class Locadora {
public static void main(String[] args) {
Locadora locadora = new Locadora();
locadora.cadastrarCategorias();
}
public void cadastrarCategorias(){
String categorias[]={"Aventura","Ação","Policial"};
Categoria categoria =null;
CategoriaDAO categoriaDAO = new CategoriaDAO();
for (int i = 0; i < categorias.length; i++) {
categoria = new Categoria();
categoria.setDescricao(categorias[i]);
categoriaDAO.salvar(categoria);
}
}
}
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import org.hibernate.annotations.Parameter;
import com.livro.locadora.cliente.Cliente;
public class Endereco implements Serializable {
/**
*
*/
private static final long serialVersionUID = -7199675802931509520L;
@Id
@GeneratedValue(generator="fk_endereco_cod_cliente")
@org.hibernate.annotations.GenericGenerator(name="fk_endereco_cod_cliente",strategy="foreign",parameters=@Parameter(name="property",value="cliente"))
@Column(name="cod_cliente")
private Integer endereco;
@OneToOne(mappedBy="endereco")
private Cliente cliente;
private String rua;
private String numero;
private String bairro;
private String cidade ;
@Column(name="estado")
private String uf;
private String cep;
private String complemento;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import com.livro.locadora.endereco.Endereco;
import com.livro.locadora.locacao.Locacao;
@Entity
@Table(name="cliente")
public class Cliente implements Serializable {
/**
*
*/
private static final long serialVersionUID = 7611034200283709391L;
@Id
@GeneratedValue
@Column(name="cod_cliente")
private Integer cliente;
@OneToOne
@PrimaryKeyJoinColumn(name="cod_cliente")
private Endereco endereco;
@OneToMany(mappedBy="cliente")
private List<Locacao> locacoes;
249 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
265 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.0.Final
265 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
280 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
280 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
421 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: hibernate.cfg.xml
421 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: hibernate.cfg.xml
546 [main] WARN org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
624 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
748 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: com.livro.locadora.filme.Filme
843 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity com.livro.locadora.filme.Filme on table filme
983 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: com.livro.locadora.categoria.Categoria
983 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity com.livro.locadora.categoria.Categoria on table categoria
983 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: com.livro.locadora.midia.Midia
983 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity com.livro.locadora.midia.Midia on table midia
983 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: com.livro.locadora.cliente.Cliente
983 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity com.livro.locadora.cliente.Cliente on table cliente
1061 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: com.livro.locadora.locacao.Locacao
1061 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity com.livro.locadora.locacao.Locacao on table locacao
1093 [main] INFO org.hibernate.cfg.annotations.CollectionBinder - Mapping collection: com.livro.locadora.cliente.Cliente.locacoes -> locacao
Criação Inicial do objeto SessionFactory falhou .Erro :org.hibernate.MappingException: An association from the table cliente refers to an unmapped class: com.livro.locadora.endereco.EnderecoException in thread "main" java.lang.NullPointerException
at com.livro.locadora.util.Hibernate.CategoriaDAO.salvar(CategoriaDAO.java:22)
at com.livro.locadora.locadora.Locadora.cadastrarCategorias(Locadora.java:24)
at com.livro.locadora.locadora.Locadora.main(Locadora.java:11)
Erro ao fechar operação de inserção.Mensagem:null
livro.locadora.util.Hibernate;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;
import com.livro.locadora.categoria.Categoria;
import com.livro.locadora.conexao.HibernateUtil;
public class CategoriaDAO {
private Session sessao;
private Transaction transacao;
public void salvar(Categoria categoria) {
try {
this.sessao = HibernateUtil.getSessionfactory().openSession();
this.transacao = sessao.beginTransaction();
this.sessao.save(categoria);
this.transacao.commit();
} catch (HibernateException e) {
System.out.println("Não foi possivel inserir o contato.Erro :"
+ e.getMessage());
} finally {
try {
if (this.sessao.isOpen())
sessao.close();
} catch (Throwable e2) {
System.out
.println("Erro ao fechar operação de inserção.Mensagem:"
+ e2.getMessage());
}
}
}