Erro Mapeamento Hibernate OneToOne [RESOLVIDO]

Pessal, estou com um problema e não estou conseguindo identificar a solução do mesmo.

Mapeei duas classes, sendo Usuario e Telefone, verifiquei tudo e não consegui localizar erro algum!.

Poderiam me ajudar?
Segue o erro abaixo:

out 31, 2017 11:38:04 AM org.hibernate.ejb.HibernatePersistence logDeprecation
WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
out 31, 2017 11:38:04 AM org.hibernate.ejb.HibernatePersistence logDeprecation
WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
out 31, 2017 11:38:04 AM org.hibernate.ejb.HibernatePersistence logDeprecation
WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
out 31, 2017 11:38:04 AM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [
name: Mb
…]
out 31, 2017 11:38:04 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.11.Final}
out 31, 2017 11:38:04 AM org.hibernate.cfg.Environment
INFO: HHH000206: hibernate.properties not found
out 31, 2017 11:38:04 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
out 31, 2017 11:38:06 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager
INFO: HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
out 31, 2017 11:38:06 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!)
out 31, 2017 11:38:06 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost/muambyte]
out 31, 2017 11:38:06 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000046: Connection properties: {user=root, password=****}
out 31, 2017 11:38:06 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000006: Autocommit mode: false
out 31, 2017 11:38:06 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
out 31, 2017 11:38:07 AM org.hibernate.dialect.Dialect
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect
Exception in thread “main” javax.persistence.PersistenceException: [PersistenceUnit: Mb] Unable to build Hibernate SessionFactory
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1249)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.access$600(EntityManagerFactoryBuilderImpl.java:120)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:860)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
at br.com.Muambyte.DbConnection.ConnectionFactory.getConnection(ConnectionFactory.java:13)
at Teste.main(Teste.java:8)
Caused by: org.hibernate.MappingException: Could not determine type for: br.com.Muambyte.usuario.Usuario, at table: Endereco, for columns: [org.hibernate.mapping.Column(usuario)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:349)
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:322)
at org.hibernate.mapping.Property.isValid(Property.java:241)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:496)
at org.hibernate.mapping.RootClass.validate(RootClass.java:270)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1360)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1851)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
… 9 more

– Segue as classes abaixo

package br.com.Muambyte.endereco;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.OneToOne;

import br.com.Muambyte.usuario.Usuario;

@Entity
@IdClass(EnderecoPK.class)
public class Endereco {

//MEMBROS
@Id
private int cep;
@Id
private int numero;
@Column(nullable=false,length=40)
private String rua;
@Column(nullable=true,length=30)
private String complemento;

//MEMBROS ESTRANGEIROS
@OneToOne(mappedBy="endereco")
private Usuario usuario;

//GETTERS AND SETTERS
@Id
public int getCep() {
	return cep;
}
@Id
public void setCep(int cep) {
	this.cep = cep;
}
@Id
public int getNumero() {
	return numero;
}
@Id
public void setNumero(int numero) {
	this.numero = numero;
}
public String getRua() {
	return rua;
}
public void setRua(String rua) {
	this.rua = rua;
}
public String getComplemento() {
	return complemento;
}
public void setComplemento(String complemento) {
	this.complemento = complemento;
}
public Usuario getUsuario() {
	return usuario;
}
public void setUsuario(Usuario usuario) {
	this.usuario = usuario;
}

}

package br.com.Muambyte.endereco;

import java.io.Serializable;

public class EnderecoPK implements Serializable{
//UID
private static final long serialVersionUID = 1L;

//CONSTRUTORES
public EnderecoPK(int pCep,int pNumero){
	this.cep=pCep;
	this.numero = pNumero;
}

public EnderecoPK(){
	
}

//MEMBROS
private int cep;
private int numero;

//GETTERS AND SETTERS
public int getCep() {
	return cep;
}
public void setCep(int cep) {
	this.cep = cep;
}
public int getNumero() {
	return numero;
}
public void setNumero(int numero) {
	this.numero = numero;
}
public static long getSerialversionuid() {
	return serialVersionUID;
}

}


package br.com.Muambyte.usuario;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToOne;

import br.com.Muambyte.endereco.Endereco;

@Entity
public class Usuario {

//MEMBROS
@Id @Column()
private String email;
@Column(length=20, nullable=false)
private String senha;
@Column(length=25, nullable=false)
private String nome;
@Column(length=25, nullable=false)
private String sobrenome;
@Column(columnDefinition="char defalt A")
private Character status;
@Column(length=15, nullable=true)
private String telefoneRes;
@Column(length=12, nullable=true)
private String telefoneCel;

//MEMBROS ESTRANGEIROS
@OneToOne
private Endereco endereco;

//CONSTRUTOR
public Usuario(){
	
}

//GETTERS AND SETTERS
public Endereco getEndereco() {
	return endereco;
}
public void setEndereco(Endereco endereco) {
	this.endereco = endereco;
}
public String getEmail() {
	return email;
}
public void setEmail(String email) {
	this.email = email;
}
public String getSenha() {
	return senha;
}
public void setSenha(String senha) {
	this.senha = senha;
}
public String getNome() {
	return nome;
}
public void setNome(String nome) {
	this.nome = nome;
}
public String getSobrenome() {
	return sobrenome;
}
public void setSobrenome(String sobrenome) {
	this.sobrenome = sobrenome;
}
public Character getStatus() {
	return status;
}
public void setStatus(Character status) {
	this.status = status;
}
public String getTelefoneRes() {
	return telefoneRes;
}
public void setTelefoneRes(String telefoneRes) {
	this.telefoneRes = telefoneRes;
}
public String getTelefoneCel() {
	return telefoneCel;
}
public void setTelefoneCel(String telefoneCel) {
	this.telefoneCel = telefoneCel;
}

}


PERSITENCE.XML



org.hibernate.ejb.HibernatePersistence
br.com.Muambyte.usuario.Usuario
br.com.Muambyte.endereco.Endereco

	<properties>
		<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
		<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/muambyte" />
		<property name="javax.persistence.jdbc.user" value="root" />
		<property name="javax.persistence.jdbc.password" value="1234" />
		<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
		<property name="hibernate.show_sql" value="true" />
		<property name="hibernate.format_sql" value="true" />
		<property name="hibernate.hbm2ddl.auto" value="update" />
	</properties>
</persistence-unit>

Opa.

Vai usar o relacionamento Bidirecional mesmo?

Tente

@OneToOne(fetch = FetchType.LAZY) //Default ToOne é EAGER
@JoinColumn(name = "usuario")
private Usuario usuario;

e em Usuario

@OneToOne(mappedBy = "usuario", cascade = CascadeType.ALL, 
          fetch = FetchType.LAZY, optional = false)
private Endereco endereco;

Veja suas bibliotecas, parece ter algo depreciado no seu JPA.

1 curtida

obrigado estava depreciado mesmo !

1 curtida

Ótimo.

Pode marcar o comentário como Solução e adicionar [RESOLVIDO] ao título

[]'s