Автоматический префикс столбцов дочерних объектов с DiscriminatorValue при использовании InheritanceType.SINGLE_TABLE - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть этот родительский класс, использующий стратегия наследования одной таблицы в Hibernate 5:

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public abstract class Flag {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", updatable = false, nullable = false)
    private Long id;

    public Flag() {}

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

И два дочерних класса, которые расширяются Flag:

@Entity
@DiscriminatorValue("dmg")
public class DamageFlag extends Flag {

    private float percentage

    public DamageFlag() {}

    public float getPercentage() {
        return this.pergentace;
    }
    public void setPercentage(float percentage) {
        this.percentage = percentage;
    }       
}

+

@Entity
@DiscriminatorValue("prg")
public class ProgressFlag extends Flag {

    private float percentage

    public ProgressFlag() {}

    public float getPercentage() {
        return this.pergentace;
    }
    public void setPercentage(float percentage) {
        this.percentage = percentage;
    }       
}

Как заставить Hibernate автоматически префиксировать percent столбцы с соответствующими @DiscriminatorValue без добавления префиксов вручную?

  • Класс DamageFlag будет генерировать столбец dmg_percentage
  • Класс ProgressFlag будет генерировать столбец prg_percentage.

Есть ли способ сделать это, используя Hibernate's NamingStrategy ?

...