java - 实体类在使用@IdClass 时扩展它自己的 PK 类
问题描述
我正在尝试使用复合主键为我的数据库实体高效/优化地创建 Java 类。使用@IdClass时,我在网上找到的每个教程都创建了一个实体类和一个完全独立的PK类,其中两个类都包含与复合主键对应的字段。例如:
public class MyEntityPK implements Serializable {
private String primaryFirst;
private String primarySecond;
// ...
}
@Entity
@IdClass(MyEntityPK.class)
public class MyEntity {
@Id
private String primaryFirst;
@Id
private String primarySecond;
private String otherField;
// ...
}
我很好奇为什么,与定义主键字段两次相反,我们不只是执行以下操作:
@MappedSuperClass
@IdClass(MyEntityPK.class)
public class MyEntityPK implements Serializable {
@Id
protected String primaryFirst;
@Id
protected String primarySecond;
// ...
}
@Entity
@IdClass(MyEntityPK.class)
public class MyEntity extends MyEntityPK {
private String otherField;
// ...
}
这种方法是否存在我遗漏的任何陷阱、问题或不合规问题?
解决方案
推荐阅读
- apache-spark - 如何在使用 Spark 进行 sqooping 时处理记录中的额外 '\n'?
- firebase - 如何比较 Firestore 查询中的多个字段?
- pine-script - Pine 脚本中的累积线
- azure-ad-b2c - Azure AD B2C - 运行“自助密码重置”后,自定义策略“会话”处于不正确状态
- google-tag-manager - 针对不同产品类别的 Google Ads 转化跟踪,如何?
- android - api 30 android 无法访问电子邮件和拨号器应用程序
- python - AttributeError:模块'flask'没有属性'route'
- javascript - 用于检查是否将新子节点添加到目标节点的事件侦听器
- java - 递归插入二叉搜索树JAVA
- python - 如何用两个类别制作条形图?