微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

休眠@ManyToOne映射

如何解决休眠@ManyToOne映射

我正在使用单向@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
        (?,?,?)

解决方法

自从您提到 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,它只会让您为该列插入新值

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。