【问题标题】:JPA OneToMany : Impossible to get the children of an entityJPA OneToMany:不可能获得实体的孩子
【发布时间】:2020-05-20 18:12:41
【问题描述】:

我有一个类问题和一个类响应,如下所示:

@Entity
public class Question implements Serializable {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  protected Long id;
  protected String texte;

  @OneToMany(mappedBy="question")
  private List<Reponse> reponses;


@Entity
public class Reponse implements Serializable {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  protected Long id;

  @ManyToOne
  @JoinColumn(name = "question_id")
  private Question question;

当我从数据库中调用类型问题时,这应该也会给我带来一个由“问题”映射的响应列表。

但我在 List 对象中得到一个 NULL 值和这个堆栈:

错误 = 发生异常:com.sun.jdi.InvocationException

有人知道它是什么吗?

【问题讨论】:

    标签: java hibernate jpa persistence one-to-many


    【解决方案1】:

    您需要急切地获取响应:

    @OneToMany(mappedBy="question", fetch = FetchType.EAGER)
    private List<Reponse> reponses;
    

    【讨论】:

    • 谢谢,但我不明白的是,当我调用 question.getResponses() 时,程序应该会带来我的回复...为什么没有?
    • 因为默认情况下@OneToMany 使用惰性获取模式。如果您调用了question.getResponses().size(),则应该已经加载了响应。
    猜你喜欢
    • 1970-01-01
    • 2011-01-01
    • 2017-06-23
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多