Estou desenvolvendo uma aplicação onde algumas classes de persistência irão herdar de uma mapeada para herança que criará alguns campos automaticamente.
- Classe Filha POJO de persistência herda de classe Pai de controle
- Campos definidos na classe pai serão criados automaticamente pelo hibernate, essa classe usa a annotation @MappedSuperclass.
Porém esses campos definidos na classe pai, deverão ser criados com nome de coluna diferentes, a depender da classe que estende essa classe.
Para isso eu criei uma própria anotação que será capturada por essa classe pai. Mas quando defino nela a @Column para esses campos obtendo o valor da anotação, ela reclama que o atributo precisa ser uma constante.
A annotation se chama @Prefix, onde em cada classe filha (ex: Cliente) passo ela como uma anotação de classe.
@Prefix("CLN")
public class Cliente { ... }
@Column(name=valor + "_CD_VERSAO")
private Long versao;
sendo o atributo valor uma string que retêm o valor da annotation Prefix. Não quero usar overriden nesse caso, deixando os atributos getters como abstratos para serem implementados pela filha. Há algum meio de eu definir a criação desses campos passando pela classe filha?