【发布时间】:2017-05-01 04:29:58
【问题描述】:
我有 2 个模型,在 db 中有 ff 列:
ContractHeader
id = primary key
con_num
ContractEntitlement
id = primary key
ch_id = foreign key to id in ContractHeader table
category
一个合同标题可以有多个合同权利。模型类是:
ContractHeader.java
@Entity
@Table(name = "CONTRACT_HEADER")
public class ContractHeader {
@Id
@Column(name = "id", unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "contractHeader")
private List<ContractEntitlement> contractEntitlements;
@Column(name = "con_num")
private String conNum;
getter and setter ....
合同权利
@Entity
@Table(name = "CONTRACT_ENTITLEMENT")
public class ContractEntitlement {
@Id
@Column(name = "id", unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ch_id", referencedColumnName = "id")
private ContractHeader contractHeader;
@Column(name = "category")
private String category;
getter and setter ....
当我从 jsp 保存日期时,它会在 spring 中正确插入每个表中没有错误的值,但 ch_id 字段(foreign_key)始终为空。知道为什么 ch_is 没有被 contractheader 表中的 id 填充吗?
【问题讨论】:
-
您希望自动填充 ch_id 还是从表单发送 ch_id 的值,但仍然为它插入 null?
-
合约标头的 id 在从表中保存(序列化)后填充。我假设将 id 映射到 ch_id 将自动填充表中的 ch_id。我不发送表单中的 ch_id。
-
我想得越多,我想这需要在数据库端完成(存储过程)。有没有cmets?
-
是的@Arnold,您需要在 DB 端处理这种情况,因为 Spring 将无法识别需要在 ch_id 中填充哪个 id。
标签: java mysql spring spring-mvc