Hibernate @OneToOne 双向关联中,主表如何懒加载?

问题描述

Hibernate @OneToOne 双向关联中,主表如何懒加载?

相关代码

@Entity
@Table(name = "db_user")
public class User{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String name;
    
    @JSONField(serialize=false)
    @OneToOne(fetch = FetchType.LAZY,mappedBy = "accountUser")
    private Account account;
    
    //get set
}

@Entity
@Table(name = "db_account")
public class Account{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private Double money;
    
    @Column(name="user_id",insertable = false,updatable = false)
    private Integer userId;

    @JSONField(serialize = false)
    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name="user_id")
    private User accountUser;
    
    //get set
}

查询Account时,Account.accountUser是可以懒加载的,
但是当查询User时,User.account就会立刻执行查询,懒加载失效。
在数据库中两个表都没有外键关联,想向大家请教一下如何才能使User.account的懒加载生效?

阅读 2.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题