java - Java Spring Data OneToMany 关系芯片错误
问题描述
有人可以帮忙解决一个问题。我在文档中制作了对象结构,但关系芯片 OneToMany 不起作用。
Order:
- Positions
- Partners
I receiving error:
SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order (order_id)' at line 1
命令:
@Getter
@Setter
@Entity
@Table(name = "e_orders")
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "order_id")
private int orderId;
@Column(unique = true)
private String orderNumber;
private int count;
@OneToMany(mappedBy = "e_orders", fetch = FetchType.LAZY)
private List<Partner> partners;
@OneToMany(mappedBy = "e_orders", fetch = FetchType.LAZY)
private List<Position> positions;
}
伙伴:
@Getter
@Setter
@Entity
@Table(name = "e_partner")
public class Partner {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "partner_id")
private int id;
private String name;
private String street;
private String city;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
@JoinColumn(name = "order_e_id")
private Order attachedOrder;
}
位置:
@Getter
@Setter
@Entity
@Table(name = "e_position")
public class Position {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "position_id")
private int id;
private String guid;
private String posnr;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
@JoinColumn(name = "order_e_id")
private Order attachedOrder;
}
解决方案
我相信问题出在您的mappedBy
值中,因为 的值mappedBy
应该与相应类中的属性名称相同,而不是@Table
注释中的值。所以要解决这个问题,只需将mappedBy
表单中的值更改e_orders
为attachedOrder
推荐阅读
- node.js - 迁移到 Parcel 2 时出现“未捕获(承诺中)ReferenceError:未定义进程”
- scala - 与泛型一起使用的 ZIO Mock 方法
- c# - 如何在 ASP.NET MVC 中将 IdentityUser 与 Recipe 连接起来
- javascript - 循环响应时出现 TypeError
- linux - 如何使用 Powershell 对 CSV 数据进行排序?
- python - 如何获得 numpy where for 1st True Only
- c - 是赋值 x=1; 根据 C17,总是未定义的行为?
- javascript - 如何获取标题的内部html
- statsmodels - SARIMAX 中的 HC 和 HAC
- html - (HTML+CSS) 我的 Instagram 徽标前有一个点