gpt4 book ai didi

java - @MappedSuperclass 不是 JPA 中的 @Entity 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:23:02 24 4
gpt4 key购买 nike

所以我正在使用 DerbyDB 并且正在设置一些实体。我有一个 @MappedSuperclass,用作某些实体 (@Entity) 的父类(super class)。更具体地说,我有一个父类(super class) User 和 3 个子类,即 adminregularguest。现在我有一个不同的实体,假设 file 应该引用(作为其字段之一)它的所有者。所以我创建了一个名为 User owner 的字段。我得到的错误是:

Exception Description: [File] uses a non-entity [User] as target entity in the relationship attribute [field owner].

有解决办法吗?

最佳答案

@MappedSupperclass 不同于 @Inheritance 注释。

@MappedSuperclass 告诉 JPA 提供者包含基类持久属性,就好像它们是由扩展用 @MappedSuperclass 注释的父类(super class)的子类声明的一样。

但是,继承仅在 OOP 世界中可见,因为从数据库的角度来看,没有基类的指示。只有子类实体才会有关联的映射表。

@Inheritance注解是为了具体化数据库表结构中的OOP继承模型。此外,您可以查询用 @Inheritance 注释的基类,但不能查询用 @MappedSuperclass 注释的基类。 .

关于java - @MappedSuperclass 不是 JPA 中的 @Entity 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36991236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com