- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
为我的实习工作开发 JPA 2.0 合规性工具包。该套件的一部分用于覆盖角落案例。
@MappedSuperclass
没有原始表,因为它不是实体。JSR-317 声明了这个有趣的位:
A class designated with the MappedSuperclass annotation can be mapped in the same way as an entity except that the mappings will apply only to its subclasses since no table exists for the mapped superclass itself.
“因为映射父类(super class)本身不存在表。”
这是否意味着“无默认值”- 如果您愿意,您可以制作自己的表格,但它不能自行检索?
或者这是否意味着“映射的父类(super class)不能存在任何表”——您不能创建一个(使用 @SecondaryTable
)?
根据 JPA 2.0,是否允许将 @MappedSuperclass
的一部分映射到 @SecondaryTable
?
最佳答案
我不确定你的意思是在映射的父类(super class)中使用@SecondaryTable-annotation 还是在映射的父类(super class)中定义的属性持久化到派生映射的实体中的@SecondaryTable 表,所以我尝试回答这两个问题。
映射的父类(super class)没有自己的表。上下文被映射的父类(super class)用于定义表。这是有道理的,因为否则从一个映射父类(super class)继承到多个实体的映射总是会产生需要覆盖除一个派生实体之外的所有其他实体中的表名称。我认为“映射父类(super class)不存在表”也关闭了@SecondaryTable 的使用出。
此外,根据 JPA 2.0 规范第 12.3 章给出的 XML 模式不允许映射父类(super class)的二级表。
但是在实体中使用@AttributeOverride 的列元素将派生自映射父类(super class)的属性持久化到实体的辅助表应该没问题。规范中没有任何内容反对这种情况。
所以我认为“映射的父类(super class)不能存在任何表”是正确的,但是没有什么能阻止您将这些属性放置到实体的辅助表中。关于列的表的决定发生在派生属性和关联映射的实体中,而不是在映射的父类(super class)本身中。
关于java - 结合 @MappedSuperclass 和 @SecondaryTable - 允许吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9095111/
在 JPA/Hibernate 中,像 BetterBaseEntity 这样的映射父类(super class)可以是另一个映射父类(super class) BaseEntity 的子类吗? 我想
我在 Symfony 5 中与 MappedSuperclass 的多对一关系存在问题。我有实体 Employee、Employer,它扩展了 MappedSuperclass 抽象类 Person。
伙计们! 如果我定义一个实体类并用 @MappedSuperclass 注释它和一个 @EntityListener ,在子类中是否还会调用监听器来处理生命周期事件? 例子: @MappedSuper
我在搜索从@MappedSuperclass 扩展的实体时遇到了问题。我创建了一个类 PhoneBook 并从中扩展了 2 个实体:FirstPhoneBook 和 SecondPhoneBook。结
我有一个映射父类(super class) @MappedSuperclass public class A{ . . . @Column(name="somethin
我想知道是否有办法在继承 MappedSuperClass 的子类中更改(或定义内部)注释,例如,假设我们有一个类 BaseUser(mappedsuperclass),一个子类 User :
我有一些表有一些公共(public)列,我认为在创建实体时我会让实体扩展一个定义了所有映射的类: @MappedSuperclass public class AbstractLogMaster im
假设我有一个 JPA 实体: @Entity @Table(name = "PARENT") public class Parent { // ... } 有没有办法,也许是特定于 Hiber
我正在努力创建一些抽象类来抽象每个实体将共享的属性,例如 ID。 我创建了一个 AbstractModel 类,如下所示。 import javax.persistence.*; import jav
我想与双方的同一个表创建ManyToMany关系。它应该代表两个用户之间的友谊。我现在有用户类别: @Entity @Table(name = "Users") public class User e
我的 Web 应用程序中有几个领域模型类,它们之间存在层次关系。其中一个例子是用于对用户帖子进行分类的分层类别结构。 有一些与这些类的层次结构相关的逻辑是常见的。因此,我尝试将逻辑移动到通用的 @Ma
问题 我有一个名为 Data 的 @MappedSuperclass 作为我数据库中每个实体的父级。它包含 Id 等公共(public)属性。然后我有一个扩展 Data 的实体,由于其子类的公共(pu
我有一个摘要TemporalModel向所有扩展模型添加 created 和 updated 字段的类(用 @MappedSuperclass 注释)。我想给它添加一个 getLatest() 静态方
我需要关联 @OneToMany 从 Country 到父类(super class) Place (@MappedSuperclass)。它可以是双向的。我需要像 @OneToAny 这样的东西。
有: @MappedSuperclass class Superclass { @Id @Column(name = "id") protected long id;
我有一个场景,我需要使用 Doctrine 的 MappedSuperclass 功能(使用 Symfony2),并在一些父类(super class)列上创建一个唯一约束。比方说: use Doct
我将 JPA2 与 Hibernate 一起使用,并尝试为我的实体引入一个公共(public)基类。到目前为止,它看起来像这样: @MappedSuperclass public abstract c
我可以在父类和子类中定义相同的 JPA 回调方法吗?如果是,我是否需要调用 super.onPrePersist();在子类的 onPrePersist() 方法中? @MappedSuperclas
我正在使用 JPA 2.0 和 EclipseLink 2.2.0。 我有一个 @MappedSuperclass,AbstractEntity,它是我所有提供 PK 和审计列的实体的基础。 我想让另
@MappedSuperclass public abstract class AbstractBaseModel{ } @MappedSuperclass public class Person e
我是一名优秀的程序员,十分优秀!