Hibernate - override de atributo

0 respostas
L

Pessoal,

Estou com a seguinte situação: Tenho uma classe abstrata e outras classes concretas que devem fazer o override do atributo, que por sinal é o Id.
Da forma que estou fazendo, estou conseguindo, porém com o inconveniente de ser criado uma tabela com o nome da classe abstrata. Gostaria de saber se tem como eu fazer funcionar sem que a tabela da classe abstrata seja criada. Abaixo segue as classes

@Entity
@Table(name = "NOME_SUPER_CLASSE")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@MappedSuperclass
public abstract class NomeSuperClass  {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "id", nullable = false)
    protected Long id;

	public Long getId() {
		return id;
	}

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


@Entity
@Table(name = "NOME_SB_CLASSE")
@AttributeOverride(name = "id", column = @Column(name = "id_sub_class", nullable = false))
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)

public class NomeSubClass extends NomeSuperClass {

	private static final long serialVersionUID = 1L;

	@Column(name = "contato", length = 30, nullable = false)
	private String contato; 
	
	@Column(name = "fone_contato", length = 14)
	private String fone;

Da forma que está aí, eu consigo gerar a tabela NOME_SB_CLASSE com a coluna pk com nome “id_sub_class” mas tbm é criado no banco uma tabela com o nome de “NOME_SUPER_CLASSE”

Importante: Tenho outra classe que tem um relacionamento com a SUPER_CLASSE, porque eu terei mais de uma subclasse dessa superclasse e essa classe deve se relacionar com qualquer subclasse…por isso essa minha abordagem.

Se alguém souber como resolver isso ou ainda propor uma abordagem diferente para solução do problema agradeço.

Obrigado

Criado 29 de março de 2010
Respostas 0
Participantes 1