hibernate - 将@IDClass 与@JoinColumn 结合使用
问题描述
这是我的示例实体结构 父类
@IDClass(TicketPK.class)
class Ticket {
@Id
int ticket_id;
@Id
Date month;
}
子实体
@IDClass(FooPK.class)
class Foo {
@Id
int id;
@ManyToOne
@JoinColumns({
@JoinColumn(name = "Ticket_ID", referencedColumnName = "Ticket_id"),
@JoinColumn(name = "month", referencedColumnName = "month") })
private Ticket ticket;
}
Foo 的主键由 'id' 和 'month' 组成。如何在我的 Foo 实体中将“月”也指定为复合键。还有什么是我的 FooPK 课?
解决方案
为什么不能只映射实体中的属性?我会改用嵌入式 ID:
@Entity
class Foo {
@EmbeddedId
FooId id;
@ManyToOne
@JoinColumns({
@JoinColumn(name = "Ticket_ID", referencedColumnName = "Ticket_id"),
@JoinColumn(name = "month", referencedColumnName = "month") })
private Ticket ticket;
}
@Embeddable
class FooId {
@Column(nullable = false)
int id;
@Column(nullable = false)
int month;
}
推荐阅读
- javascript - 如何读取文件名并处理我的 html 标签?
- android - 如何在非全宽工具栏后面绘制内容(如新的 Gmail 或 Google 应用)
- python - 如何从节点列表中获取相应的边
- javascript - 在 React 的渲染函数中迭代数据时,澄清箭头函数的语法
- python - Python3在for循环中生成字符串,每次迭代都不会重新定义类变量
- coinbase-api - React Native 中的 Coinbase API 密钥认证
- python - sys.args[1] 命令的“IndexError: list index out of range”
- mongodb - MongoDB的移位列
- php - WooCommerce 在 foreach 中获取所有订单
- java - 通过键将 GroupFlux 收集到 Hashmap 中