相关疑难解决方法(0)

Hibernate:一对一延迟加载,可选= false

我遇到的问题是一对一的延迟加载在休眠中不起作用.我已经解决了,但仍然没有正确理解会发生什么.

我的代码(延迟加载在这里不起作用,当我拉人 - 地址也被提取):

@Entity
public class Person{

  @Id
  @SequenceGenerator(name = "person_sequence", sequenceName = "sq_person")
  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "person_sequence")
  @Column(name = "id")
  private long personID;

  @OneToOne(mappedBy="person", cascade=CascadeType.ALL, fetch = FetchType.LAZY)
  private Adress address;
  //.. getters, setters
}

@Entity
public class Address {

  @Id
  @Column(name="id", unique=true, nullable=false)
  @GeneratedValue(generator="gen")
  @GenericGenerator(name="gen", strategy="foreign", parameters=@Parameter(name="property", value="person"))
  private long personID;

  @PrimaryKeyJoinColumn
  @OneToOne
  private FileInfo person;
}
Run Code Online (Sandbox Code Playgroud)

但是:如果我添加optional=falseOneToOne关系,延迟加载工作正常!

@OneToOne(mappedBy="person", cascade=CascadeType.ALL, …
Run Code Online (Sandbox Code Playgroud)

hibernate jpa lazy-loading one-to-one

58
推荐指数
2
解决办法
5万
查看次数

标签 统计

hibernate ×1

jpa ×1

lazy-loading ×1

one-to-one ×1