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 がありますが、一部の列名が異なることです...
編集:名前が変更された列名を含むビューになってしまいました