Remover Annotations @MappedSuperclass

4 respostas
fabioebner

Amigos. estou com um problema. tenho uma classe Base por exemplo

@MappedSuperclass
public class IndiceBase implements Serializable {

	@Basic(optional = false)
    @NotEmpty
    @Column(name = "nm_parte")
    private String nmParte;
	
	  @Basic(optional = false)
	  @Column(name = "nm_livro")
	  @NotEmpty
	  private String nmLivro;

	public String getNmParte() {
		return nmParte;
	}

	public void setNmParte(String nmParte) {
		this.nmParte = nmParte;
	}

	public String getNmLivro() {
		return nmLivro;
	}

	public void setNmLivro(String nmLivro) {
		this.nmLivro = nmLivro;
	}
		
}

Em outra classe eu extendo ela:

@Entity
public class TbIndiceX extends IndiceBase {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="tb_indice_x_seq")
    @Basic(optional = false)
    @Column(name = "cd_indice_x")
    private Integer cdIndiceX;

  //AQUI EU QUERO TIRAR O @NotEmpty do nmLivro, algo assim


@Column(name = "nm_livro")
	  private String nmLivro;

porem se eu colocar a propriedade quando subo o meu servidor ele fala que o nmLivro esta duplicado…

e possivel fazer isso?

Obrigado

4 Respostas

tmvolpato

cole o erro do log ai fica mais fácil

Hebert_Coelho

Eu acho que sua classe está com erro de modelagem.

Se esse campo tem comportamento diferente para cada classe filha, ele não deveria estar na classe pai.

Não sei te falar se tem jeito, mas sei falar que tem erro na modelagem.

fabioebner

Entao Hebert, eu tenho esse campo em 16 tabelas, mas somente em 1 delas, esse campo não e obrigatorio. logo queria sabe se tem pq dai nao preciso colocar o campo nas 16 entitys, coloco apenas na base e nesse indiceX eu tiro a annotation @NotEmpty

entendeu?

Hebert_Coelho

fabioebner:
Entao Hebert, eu tenho esse campo em 16 tabelas, mas somente em 1 delas, esse campo não e obrigatorio. logo queria sabe se tem pq dai nao preciso colocar o campo nas 16 entitys, coloco apenas na base e nesse indiceX eu tiro a annotation @NotEmpty

entendeu?

Pois é, o lado negro do JPA/Hibernate com herança. [=

Tem workarround

Classe com 15 campos em comum -> A
Classe com 1 campo em comum -> B
Classe filha C e D

C extends B que extends A
D extends A apenas

[=

Criado 8 de março de 2013
Ultima resposta 8 de mar. de 2013
Respostas 4
Participantes 3