我在MySQL中有两个简单的表
User ---(one-to-many)--- Expense
我正在使用Spring JPA生成这两个实体。费用包含“ user_id”外键字段,该字段引用用户表中的“ id”字段。
我在请求中使用JSON填充表
User
{"id":1, "username":"user"}
Expense
{
"id":1,
"user_id":1, <--- this value is not null in MySQL
"expense":"expense"
}
当调用API时,我已经具有user_id值,并且我不想传递整个对象。
是否有办法告诉Spring这是引用“用户”表中“ id”列的INTEGER FOREIGN KEY?
我在网上找到的所有示例仅显示了如何通过在JSON中传递整个'User'对象来实现。
我当前的实现:
@Entity
public class User{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false, nullable = false)
private int id;
private String username;
}
@Entity
public class Car{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false, nullable = false)
private int id;
@ManyToOne
private User user_id;
private String expense;
}
您不应在请求中运输JPA实体。
为要执行的功能创建具有必要ID的POJOS,并在服务层中映射Java实体。
例如,对于查询,您只需要实例化实体并设置ID,如果需要更多字段,则可以通过id并通过直接访问对象来获取find(),以获取其余属性