【发布时间】:2020-09-23 11:39:50
【问题描述】:
我有 2 个模型,定义为一对一。
@Entity
@Table(name = "Form_Item_Production")
public class FormItemProduction {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "item_id", nullable = false)
private Long itemId;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "shift_lookup_id")
private AppLookup appLookup;
getter and setter
}
另一个是查找表
@Entity
@Table(name = "App_Lookup")
public class AppLookup {
@Id
@GeneratedValue
@Column(name = "Lookup_Id", nullable = false)
private Long lookupId;
@Column(name = "Lookup_Name", length = 30, nullable = false)
private String lookupName;
getter and setter
}
我尝试将值添加到我的数据库中的“shift_lookup_id”到 sysout 打印中,两个表之间的关系正常工作,因为我能够打印出正确的值
for (FormItemProduction x : a) {
System.out.println("YEAH RIGHT " + x.getAppLookup().getLookupName());
}
由于我只是在数据库中手动添加值,因此我现在尝试从我的 jsp 文件中保存该值,但不完全知道要在输入中写入什么:
<form:input path="formItemProduction.shiftLookupId" />
这样做不会将 jsp 的值保存到我绑定的模型中。我试图在我的实体中添加一个额外的字段
@Column(name = "shift_lookup_id", nullable = true)
private String shiftLookupId;
但它抛出一个错误
org.hibernate.MappingException: Repeated column in mapping for entity: com.mamee.factory.security.entity.FormItemProduction column: shift_lookup_id (should be mapped with insert="false" update="false")
知道如何在表单中正确编写路径:输入还是我需要更改我的模型?
【问题讨论】:
标签: spring hibernate jpa spring-data-jpa one-to-one