1

我有一个正在使用的现有 Hibernate Entity 层次结构。实体已经使用 MappedSuperClass 从基类继承一些公共字段。在我的场景中,我还需要继承这些字段,此外还需要通过 Hibernate 中的 Embeddable 功能利用一些组合。

例如,实体 Car 被标记为 MappedSuperClass,并由实体 CarTypeA 和 CarTypeB 扩展。

现在 CarTypeA 和 CarTypeB 也碰巧在它们之间有一些公共字段,可以提取到 Embeddable 类中(我们称之为 CommonCarStuff)。CommonCarStuff 如下所示

@Embeddable
public class CommonCar
{
    private String aCommonItem;
}

我可以在 CarTypeA 中使用此类,但在运行时 Hibernate 生成的 INSERT 查询不正确。而不是生成

INSERT INTO CAR_TYPE_A(A_COMMON_ITEM)..

查询生成的状态

INSERT INTO CAR_TYPE_A(COMMON_CAR_A_COMMON_ITEM)..

而且我没有在我的表中映射此列,导致查询总是失败 - 我已经正确声明了 Embedded 类。

希望有人可以帮助我。

谢谢

4

0 回答 0