java - Hibernate 扩展实体以使用附加连接进行读取
问题描述
我有一个实体对应于数据库中的某个表
@Entity
@Table
public class MyEntity {
@Id
private Long id;
@Column
private String description;
@OneToMany
private List<Foo> foos;
...
//getters setters
...
}
而且我想将该实体扩展为只读,并对另一个表进行附加连接。对于特定的读取用户案例,我只需要在一种情况下加入:
@Entity
public class ExtendedEntity extends MyEntity {
@ManyToMany(fetch = FetchType.EAGER)
private List<Bar> bars;
}
仅使用扩展将在 DB 中创建一个鉴别器列,我不需要它,因为我使用ExtendedEntity
only 用于读取。我发现我使用@DiscriminatorFormula
它将被解析为相同的整数值,如下所示:
@DiscriminatorFormula("0")
@DiscriminatorValue("0")
public class MyEntity
@DiscriminatorValue("00")
public class ExtendedEntity extends MyEntity
但这真的看起来像一个黑客。使用@MappedSuperclass
我不能有关联,但这是我需要扩展我的实体的主要原因。
我还有哪些其他选择以及此用例的最佳实践是什么?
解决方案
推荐阅读
- salesforce - 通过 Docusign rest API 在信封中添加文档时遇到错误
- python - 用于实现二项式期权定价模型的树形数据结构
- bash - bash echo 命令在函数循环中被忽略
- pandas - 如何从熊猫中的对象列中提取和替换整数和浮点值
- docker - docker中的PHPUnit:PowerShell中没有颜色
- c# - 用偏移量看旋转
- temporal-workflow - 如何获取命名空间内所有工作流的搜索属性
- lua - 如何修复lua的lgi中的时区/ dst?
- python - 在 python 中使用 imaplib 模块将邮件下载为 pdf
- c++ - c++ struct的聚合/指定初始化:直接引用另一个字段