Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Problemas com Annotation

$
0
0

@GuilhermeSouza97 escreveu:

Estou com erros devido ao meu mapeamento para o meu programa em java, ainda estou começando a mexer com annotation (peço que perdoem possíveis erros estúpidos xD).
O erro deve estar no @ManyToOne/OneToMany...

Possuo duas tabelas, CONTA e JOGADOR. Após criar uma conta, o usuario pode criar um ou mais jogadores, ou seja, uma conta pode ter vários jogadores, mas cada jogador pertence apenas a uma conta. Em meu BD eu criei uma chave estrangeira chamada ID_CONTA na tabela JOGADOR, para receber o ID da CONTA.

Alguém saberia me explicar como devo corrigir esse erro?

Erro:

   Exception in thread "main" javax.persistence.PersistenceException: Unable to build entity manager factory
	at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:66)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
	at Teste.main(Teste.java:10)
Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: Jogador.Conta in Conta.jogador
	at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:769)
	at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:719)
	at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:54)
	at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1655)
	at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1623)
	at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:278)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:847)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:874)
	at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)
	... 3 more

Classe Conta:

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

@Entity
public class Conta {
	@Id @GeneratedValue
	private int id;	
	@OneToMany(cascade = CascadeType.ALL, mappedBy = "Jogador")
 @JoinColumn(name="idConta")
 private List <Jogador> jogador;

private String email;
private String senha;
private String nome;
	
	//gets e sets
	
}

Classe Jogador:

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;

@Entity
public class Jogador {
	@Id @GeneratedValue
private int id;
@JoinColumn(name="id_conta")
private int idConta;
private String nome;
private int lvl;
private int exp;
private int corrupcao;
private int ouro;
private int força;
@ManyToOne
private Conta conta;

  //gets e sets
}

Classe que esta executando(por hora, apenas na tabela Conta):

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

public class Teste {
		public static void main(String[] args)
		{
			EntityManagerFactory entity = Persistence.createEntityManagerFactory("persistence");
			EntityManager em = entity.createEntityManager();
			Conta c = new Conta();
			
			//seleciona na tabela
			//c=em.find(Conta.class, 21l);
			
			//seta o nome ao obj
			c.setNome("joao");
			c.setEmail("joao@email.com");
			c.setSenha("123");
			
			EntityTransaction tx = em.getTransaction();
			
			tx.begin();
			em.persist(c);// insert
			//em.merge(c);//update
			//em.remove(c);//delete
			tx.commit();
			em.close();
			entity.close();

		}
}

Mensagens: 4

Participantes: 2

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>