Hibernate: Как присоединиться к списку сущности внутри другой сущности?(упомянутое свойство неизвестно) - PullRequest
0 голосов
/ 15 ноября 2018

Как присоединиться к списку сущностей внутри другой сущности, и я получаю следующую ошибку "указанное свойство неизвестно"?

сущность одна, которая включает в себя список Ghoda:

@Entity
@Table(name = "Case")
public class Case 
  @Enumerated(EnumType.STRING)
  @OneToOne(mappedBy = "case", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
  public List<Ghoda> getGhodaHistory() {
    return ghodaHistory;
  }

  public void setGhodaHistory(List<Ghoda> ghodaHistory) {
    this.ghodaHistory= ghodaHistory;
  }

сущность2 - сама таблица Ghoda:

@Entity
@Table(name = "Ghoda")
public class Ghoda{
  @OneToOne
  @JoinColumn(name = "case_ID")
  public Case getCase() {
      return case;
  }

  public void setCase(Case case) {
      this.case= case;
  }  
}

Когда я пытаюсь развернуть это, я получаю следующее исключение:

Caused by: org.hibernate.AnnotationException: Unknown mappedBy in: de.bokla.model.Case.ghodaHistory, referenced property unknown: java.util.List.case

Я не очень хорошо разбираюсь в гибернации, и я создал это в соответствии ссуществующий код и не может найти, где лежит ошибка, кто-нибудь может предложить, как это исправить?

1 Ответ

0 голосов
/ 15 ноября 2018

Вы должны использовать @OneToMany отображение таким образом

@Entity
@Table(name = "Case")
public class Case 

  @OneToMany(mappedBy = "case", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
  public List<Ghoda> getGhodaHistory() {
    return ghodaHistory;
  }

  public void setGhodaHistory(List<Ghoda> ghodaHistory) {
    this.ghodaHistory= ghodaHistory;
  }

}

@Entity
@Table(name = "Ghoda")
public class Ghoda{

  @ManyToOne
  @JoinColumn(name = "case_ID")
  public Case getCase() {
      return case;
  }

  public void setCase(Case case) {
      this.case= case;
  }

}

Самый простой способ

@Entity
@Table(name = "Case")
public class Case 

  @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
  @JoinColumn("case_ID")
  public List<Ghoda> getGhodaHistory() {
    return ghodaHistory;
  }

  public void setGhodaHistory(List<Ghoda> ghodaHistory) {
    this.ghodaHistory= ghodaHistory;
  }

}

@Entity
@Table(name = "Ghoda")
public class Ghoda{

}

https://stackoverflow.com/a/37542849/3405171

...