Hibernate: Herança - JoinColumn

0 respostas
cleberdiana

Olá Pessoal, alguém pode por favor me ajudar?
Eu tenho uma classe Teste onde guardo o Id de todos os testes, e tenho classes como a TesteTcls que herda de Teste, mas quando em uma terceira classe como TesteResultado onde eu quero adicionar Teste não estou conseguindo por que diz que não é uma entidade, mas se eu anoto com @Entity diz que não pode ser anotada junto com @MappedSuperclass.

O que eu não quero é na classe TesteRealizado precisar colocar TesteTcls, pq vou ter diversas classes como esta, eu quero através de Teste pegar todos os Ids.

Desde já agradeço.

@MappedSuperclass
public abstract class Teste
{
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Long id;

	public void setId(Long id) {
		this.id = id;
	}

	public Long getId() {
		return id;
	}	
}
@Entity(name="tbl_teste_tcls")
public class TesteTcls extends Teste implements Serializable
{	
	@Column(length=50)
	private String imagem;
	
	@Column(length=50)
	private String frase;
	
	private Integer respCerta;
	
	
	public String getImagem() {
		return imagem;
	}
	public void setImagem(String imagem) {
		this.imagem = imagem;
	}
	public String getFrase() {
		return frase;
	}
	public void setFrase(String frase) {
		this.frase = frase;
	}
	public Integer getRespCerta() {
		return respCerta;
	}
	public void setRespCerta(Integer respCerta) {
		this.respCerta = respCerta;
	}
}
@Entity(name="tbl_teste_realizado")
public class TesteRealizado implements Serializable
{	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Integer id;
	private static final long serialVersionUID = 8859386255451339675L;
	
	@ManyToOne
	@JoinColumn(name="teste")
	private Teste teste;
	
	private Double tempo;
	private Boolean resultado;
	private String resposta;
	
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public Teste getTeste() {
		return teste;
	}
	public void setTeste(Teste teste) {
		this.teste = teste;
	}
	public Double getTempo() {
		return tempo;
	}
	public void setTempo(Double tempo) {
		this.tempo = tempo;
	}
	public Boolean getResultado() {
		return resultado;
	}
	public void setResultado(Boolean resultado) {
		this.resultado = resultado;
	}
	public String getResposta() {
		return resposta;
	}
	public void setResposta(String resposta) {
		this.resposta = resposta;
	}
}

Erro:
Initial SessionFactory creation failed.org.hibernate.AnnotationException: @OneToOne or @ManyToOne on br.com.reabcognitiva.modelo.TesteRealizado.teste references an unknown entity: br.com.reabcognitiva.modelo.Teste

Criado 7 de janeiro de 2012
Respostas 0
Participantes 1