3

TABLE_PER_CLASS 継承が使用されている場合、列名をオーバーライドする方法はありますか?

ドキュメントには、
「このアプローチの制限は、プロパティがスーパークラスにマップされている場合、列名がすべてのサブクラス テーブルで同じでなければならないことです」とあります。:(

@AttributeOverride が機能しない

例:

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Parent {
  @Id
  String id;

  String parentProperty;
}

@Entity
public class Child extends Parent {
}

およびいくつかのサンプルクエリ

entityManager.createQuery("select p.parentProperty from Parent p", String.class).getResultList()

生産する

select
    parent0_.parentProperty as col_0_0_ 
from
    ( select
        id,
        parentProperty,
        1 as clazz_ 
    from
        Child ) parent0_

子サブクエリで Hibernate にカスタム プロパティ名を強制的に使用させる方法はありますか? 問題は、ほとんど同じデータを保持するいくつかのテーブルを持ついくつかのレガシー DB がありますが、一部の列名が異なることです...

編集:名前が変更された列名を含むビューになってしまいました

4

0 に答える 0