Extendendo uma classe anotada - Hibernate [resolvido]

2 respostas
black_fire

Ea ai galera, td tranquilo.

Estou fazendo uma implementacão e gostaria de sabe se tem como extender uma classe com suas annotations?
Algo mais ou menos assim:

@Entity
public abstract class Base<T extends Serializable> {
  private T id = null;
  @Id
  public T getId() {
    return id;
  }
}

@Table(name = "profissao")
public class Profissao extends Base<Integer> {
  private String descricao = null;
  @Column(length = 1)
  public String getDescricao() {
    return descricao;
  }
}

Seria exatamente que eu pensei em fazer, só que o hibernate não vê as anotacões da supper classe .. :S

Alguem sabe se há alguma solucão pra isso? Há algum annotation que eu coloque na classe dizendo pra ele herdar os annotations da super classe?

Super abraco pra todos

2 Respostas

_fs

Annotations em Java não são herdadas.

black_fire

E ai galera, resolvi o problema:

Basta colocar a annotation @MappedSuperclass na super classe classe, não da pra herdar os anottations da classe, mas dá pra herdar os atributos.

O código ficaria assim:
@MappedSuperclass
public abstract class Base<T extends Serializable> {
  private T id = null;
  @Id
  public T getId() {
    return id;
  }
}
 
@Entity
@Table(name = "profissao")
public class Profissao extends Base<Integer> {
  private String descricao = null;
  @Column(length = 1)
  public String getDescricao() {
    return descricao;
  }
}

http://java.sun.com/javaee/5/docs/api/javax/persistence/MappedSuperclass.html

Abracão pra todos...

Criado 22 de maio de 2007
Ultima resposta 23 de mai. de 2007
Respostas 2
Participantes 2