java - 在@embeddedId 的一部分上的@OneToMany 实体映射
问题描述
我目前正在尝试使用复合键从表中提取一组实体,但我只想执行与 id_a 的连接以获得一个集合,而不是两者(id_a 和 id_b),这将产生一个结果。
这不是原始代码,但它是我想要实现的一个示例。
@Entity
public class ItemA {
@EmbeddedId
private ItemId itemId;
@OneToMany
private Set<ItemB> itemsB = new HashSet<>();
}
@Embeddable
public class ItemID implements Serializable {
private Integer itemIDA;
private Integer itemIDB;
}
@Entity
public class ItemB {
@Id
private Integer itemIDA;
}
我尝试了几种方法,主要是用 @JoinColumn 和 @JoinTable 注释 @OneToMany
@OneToMany
@JoinTable(
name = "itemB",
joinColumns = { @JoinColumn(name = "itemIDA") },
inverseJoinColumns = { @JoinColumn(name = "itemIDA") }
)
private Set<ItemB> detalleUsuarios = new HashSet<>();
我也试过可能试图进入 ItemId 类
@OneToMany
@JoinTable(
name = "itemB",
joinColumns = { @JoinColumn(name = "itemID.itemIDA") },
inverseJoinColumns = { @JoinColumn(name = "itemIDA") }
)
private Set<ItemB> detalleUsuarios = new HashSet<>();
但我收到以下错误
A Foreign key refering com.example.ItemA from com.example.ItemB has the wrong number of column. should be 2
解决方案
推荐阅读
- python - 如何从dict中的值列表中获取每个值
- oracle - 尝试使用 11g 表单创建饼图时遇到问题
- javascript - 在主线程上创建图像位图?
- clang - 特定节点上的 AST 匹配器
- javascript - 在 JavaScript 中为对象的键添加引号和下划线
- powerbi - Power BI:根据另一个表的条件计算一个表的行数
- c# - 如果在 C# 中处理该异常时引发另一个异常,是否有任何方法可以捕获原始异常?
- tcp - Kafka Consumer 不断向 Kafka Server 发送 TCP 数据包
- c++ - 特征比较向量与一些 NaN 值而不丢失 NaN 值
- linux - 一次grep多个表达式,输出匹配单独文件中的每个表达式