我正在使用单向@ManyToOne映射。代码看起来像这样。
public class PolicyCatalogEntity extends BaseEntity {
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "policyReferenceId", referencedColumnName = "policyReferenceId",
nullable = false, insertable = false, updatable = false)
private PolicyConfigDetailsEntity policyConfigDetailsEntity;
@NotBlank
private String lobName;
}
PolicyDetailsEntity看起来像这样
public class PolicyConfigDetailsEntity extends BaseEntity implements Serializable {
@NotNull
private Long policyReferenceId;
@NotBlank
private String policyName;
private boolean isActive;
}
我是否需要在policyReferenceId
中专门添加列PolicyCatalogEntity
?
PS:policyReferenceId
不是primaryKey。这只是一个复合键。
如果没有,则出现以下错误
Field 'policy_reference_id' doesn't have a default value
Hibernate:
insert
into
policy_catalog
(created_at, created_by, last_modified_by, updated_at, version, end_date, is_active, lob_name, lob_ref_id_type, start_date, tnc_url)
values
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
答案 0 :(得分:0)
自从您提到 createSwitchNavigator(
{
LimitedAccess: {
screen: Trial,
},
AppScreens: {
screen: AppScreens,
},
AuthScreens: {
screen: AuthScreens,
},
},
{
initialRouteName: signedIn ? 'AppScreens' : 'AuthScreens',
},
),
在这里:
@JoinColumn(name =“ policyReferenceId”,referencedColumnName =“ policyReferenceId”, nullable = false,可插入= false ,可更新= false)
hibernate将让您的数据库本身处理插入的值。 在这种情况下,您必须为数据库表设计中的该列设置默认值
还要注意insertable = false
,它只会让您为该列插入新值