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 在子子查询中使用一些自定义属性名称?问题是我有一些遗留数据库,其中包含几乎相同数据但一些列名不同的表......

编辑:我最终得到了包含重命名列名的视图

4

0 回答 0