Remover Annotations @MappedSuperclass

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

cole o erro do log ai fica mais fácil

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.

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?

[quote=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?[/quote]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

[=