Relacionamento entre entidades [Resolvido]

6 respostas
antonioedirane

Tenho uma entidade CopaDoMundo.
E cada copa do mundo terá os 4 primeiros colocados.
Qual a melhor forma de fazer este relacionamento?

Tentei colocar assim

public class CopaDoMundo {
Time primeiroLugar;
Time segundoLugar;
Time terceiroLugar;
Time quartoLugar;
}

mas dá o erro

org.hibernate.MappingException: Could not determine type for: br.teste.model.Time, at table: CopaDoMundo, for columns: [org.hibernate.mapping.Column(primeiroLugar)]

Alguma idéia da melhor solução.
Pensei em colocar uma lista de times, mas como vou setar quem foi o primeiro,segundo, etc.

6 Respostas

davidbuzatto

A classe Time está mapeada?
Pq está sem modificador de acesso?
Você está mesmo usando arquivos xml p/ fazer o mapeamento? Pq não usa anotações?

antonioedirane

Usei anotações continua o mesmo erro.

@Entity
public class CopaDoMundo {
	@Id
	@GeneratedValue
	private Long id;
	private int ano;
	private Pais sede;
	private Time campeao;
	private Time segundoLugar;
	private Time terceiroLugar;
	private Time quartoLugar;
   ...... getters and setters
@Entity
public class Time {

	@Id
	@GeneratedValue
	private Long id;
	private String nome
	private String codigoFifa;
   ...... getters and setters
davidbuzatto
@Entity
public class CopaDoMundo {

	@Id
	@GeneratedValue
	private Long id;

	private int ano;

	@ManyToOne
	private Pais sede;

	@ManyToOne
	private Time campeao;

	@ManyToOne
	private Time segundoLugar;

	@ManyToOne
	private Time terceiroLugar;

	@ManyToOne
	private Time quartoLugar;

}
davidbuzatto

Nos relacionamentos que forem obrigatórios, vc pode usar:

Ou

@NotNull @ManyToOne

[]´s

antonioedirane

davidbuzatto:
Nos relacionamentos que forem obrigatórios, vc pode usar:

Ou

@NotNull @ManyToOne

[]´s

Consegui. era só colocar o ManyToOne.
Muito Obrigado David.

davidbuzatto

antonioedirane:
Consegui. era só colocar o ManyToOne.
Muito Obrigado David.

Disponha :wink:
Veja que você precisa sempre especificar o tipo de relacionamento.

[]´s

Criado 22 de setembro de 2010
Ultima resposta 22 de set. de 2010
Respostas 6
Participantes 2