Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Referente ao curso Java e JPA, no capítulo Muitos para muitos e um para um e atividade Testando os relacionamentos entre Categoria, Conta e Movimentação (testando-categoria-e-cliente)

NFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect Exception in thread "main" java.lang.ExceptionInInitializerError at br.com.keyloncorp.financas.teste.TesteMovimecaComCategoria.main(TesteMovimecaComCategoria.java:43) Caused by: javax.persistence.PersistenceException: [PersistenceUnit: financas] Unable to build Hibernate SessionFactory at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1016) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:942) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at br.com.keyloncorp.financas.util.JPAUtil.(JPAUtil.java:10) ... 1 more Caused by: org.hibernate.MappingException: Could not determine type for: br.com.keyloncorp.financas.modelo.Conta, at table: Cliente, for columns: [org.hibernate.mapping.Column(conta)] at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:486) at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:453) at org.hibernate.mapping.Property.isValid(Property.java:226) at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:624) at org.hibernate.mapping.RootClass.validate(RootClass.java:267) at org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:347) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:466) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939) ... 5 more

Estou tendo dificuldade neste tópico, existe outro tópico sobre isso, porém a solução não foi postada, grato pela atenção.

6 respostas

Posta sua classe Cliente e Conta

package br.com.keyloncorp.financas.modelo;

import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToOne;

@Entity public class Cliente {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String nome;
private String profissao;
private String endereco;

private Conta conta;

public Conta getConta() {
    return conta;
}
public void setConta(Conta conta) {
    this.conta = conta;
}
@OneToOne
public Integer getId() {
    return id;
}
public void setId(Integer id) {
    this.id = id;
}
public String getNome() {
    return nome;
}
public void setNome(String nome) {
    this.nome = nome;
}
public String getProfissao() {
    return profissao;
}
public void setProfissao(String profissao) {
    this.profissao = profissao;
}
public String getEndereco() {
    return endereco;
}
public void setEndereco(String endereco) {
    this.endereco = endereco;
}

}

package br.com.keyloncorp.financas.modelo;

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

@Entity public class Conta {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
private String titular;
private String numero;
private String banco;
private String agencia;


public Integer getId() {
    return id;
}
public void setId(Integer id) {
    this.id = id;
}
public String getTitular() {
    return titular;
}
public void setTitular(String titular) {
    this.titular = titular;
}
public String getNumero() {
    return numero;
}
public void setNumero(String numero) {
    this.numero = numero;
}
public String getBanco() {
    return banco;
}
public void setBanco(String banco) {
    this.banco = banco;
}
public String getAgencia() {
    return agencia;
}
public void setAgencia(String agencia) {
    this.agencia = agencia;
}

}

solução!

Tenta assim:


    @OneToOne
    @MapsId
private Conta conta;

Obrigado, deu certo, você poderia me informar por que devo utilizar ou algum lugar que tenha essa informação, grato.