java - JPA如何从单个表的复合主键的两个不同表部分制作复合外键
问题描述
以下是我的表的结构:
表广告系列{ Camp_id(PK), 其他栏目... } 表用户{ 用户 ID(PK), 其他栏目... } 候选表{ cand_id(PK), 其他栏目... } 表格结果{ 用户 ID(PK), camp_id(PK), 坦率 }
解决方案
尝试这样的事情:
实体 TableCampaign
@Entity
@Table(name="CAMPAIGN")
public class Campaign implements Serializable {
@GeneratedValue(...)
@Id
@Column(name="CAMP_ID")
Long campId
....
}
实体用户
@Entity
@Table(name="USER")
public class User implements Serializable {
@GeneratedValue(...)
@Id
@Column(name="USER_ID")
Long userId
....
}
实体候选人
@Entity
@Table(name="CANDIDATE")
public class Candidate implements Serializable {
@GeneratedValue(...)
@Id
@Column(name="CAND_ID")
Long candId
....
}
实体结果
@Entity
@Table(name="RESULT")
public class Result implements Serializable {
@EmbeddedId
private ResultId id;
@ManyToOne
@JoinColumn(name = "CAND_ID")
private Candidate candidate;
...
}
@Embeddable
public class ResultId implements Serializable {
@ManyToOne
@JoinColumn(name = "USER_ID")
private User user;
@ManyToOne
@JoinColumn(name = "CAMP_ID")
private Campaign campaign;
}
推荐阅读
- string - Leetcode 191 - 1 的位数 - 简单问题
- bash - 跳转到 Bash 脚本的开头
- css - 设置为 100vh 的主体占用了超过 100% 的视口?
- docker - Docker - 仅通过特定 IP 访问容器
- angular - 如何将值从一个函数访问到另一个函数
- amazon-web-services - 无服务器 - 运行 sls deploy 时无法读取未定义错误的属性“startsWith”
- javascript - 上传文件时 v-file-input 显示 2 名称
- openid-connect - AzureADB2C AADSTS50011:请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配
- java - 数组值与索引总和的最大绝对差
- google-apps-script - 您如何将公司徽标添加到谷歌网络应用程序?