java - jpa休眠关联多对一错误
问题描述
这是我的扩展 BaseClass 的产品类,我在
@JoinColumn(name = "fk_supplier",referencedColumnName = "supplier_id")
private Supplier supplier;
并且错误是“多对一”属性类型不应该是“供应商”
@Table
@Data
public class Product extends BaseEntity {
@ManyToMany
private List<Customer> customers = new ArrayList<>();
@ManyToOne
@JoinColumn(name = "fk_supplier",referencedColumnName = "supplier_id")
private Supplier supplier;
}
这是我的供应商类
@Table
@Data
public class Supplier extends BaseEntity {
@Column
private boolean active;
@Column
private Date foundationDate;
//Enum type to String type in mysql
@Column
@Enumerated(EnumType.STRING)
private Type type;
@OneToMany(targetEntity = Product.class)
private List<Product> products = new ArrayList<>();
}
解决方案
supplier_id
列是在哪个实体下定义的?,表示在提供的Supplier
实体片段中不存在此类字段。我希望基本实体只有通用的列,并且适用于您将使用的每个实体。因此,如果您指定,请referencedColumnName
确保它与您在定义中的内容一致。默认情况下,它将是被引用实体的主键,这里是Supplier
表的主键。
请尝试这样做,它可能会解决我认为的问题
@JoinColumn(name = "fk_supplier")
private Supplier supplier;
推荐阅读
- twig - 带有 ${ text } 的 Twig if 语句
- javascript - 如何在纯 JavaScript 的外部 HTML/SVG 文件中执行 javascript?
- asp.net - 不提供页面名称时 ASP.NET 站点速度慢
- jquery - JQuery Datatables 分页:从当前页面显示 2 个上一个和 2 个下一个数字
- r - 如何在 R 中将任意持续时间(时间格式(HMS))转换为分钟?
- python - Tensorflow 抛出“尺寸必须相等,但对于输入形状为 [0,100]、[0,100] 的 'MatMul'(操作:'MatMul')为 100 和 0。”
- reactjs - Reactjs:没有使用 Link to="" 调用 componentDidMount
- javascript - Javascript意外的排序顺序
- javascript - rxjs/Subscription 没有导出的成员“订阅”
- spring - Spring 集成 jms:message-driven-channel-adapter 消息未从 Qpid 队列中删除