当前位置: 首页 > 知识库问答 >
问题:

Hibernate:如何在其他实体中加入一个实体的列表?(引用的属性未知)

韶宏邈
2023-03-14
@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;
  }
@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

我不是很精通hibernate,我是根据现有的代码创建的,但是找不到错误所在,有没有人能建议一下如何解决这个问题呢?

共有1个答案

叶淇
2023-03-14

您需要通过以下方式使用@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

 类似资料:
  • 首先,我的课程: 使用者 角色地图。JAVA 当我尝试在服务器上运行这个我有这样的异常:错误创建bean与名称'SessionFactory'定义在ServletContext资源[/WEB-INF/类/base Beans.xml]:调用init方法失败;嵌套的异常org.hibernate.注释异常:映射通过引用一个未知的目标实体属性:com.patpuc.model.ap.users在com

  • 我第一次使用Hibernate,并且很难让它与我的模式一起工作。 我得到了"org.hibernate.注释异常:映射通过引用未知的目标实体属性:学生。教师在Faculty.all学生”。 一些学生共用一个导师。因此,我认为学生和教师的关系是多对多的,但我被告知这是多对多的关系。 Student.java Faculty.java 数据库架构: 在看了留档后,我尝试了几种不同的注释,但我看不出我做

  • 我在实体类中设置一些hibernate注释时遇到问题。 我的问题是:我如何告诉Hibernate,它应该在一个表中存储地址、名称和客户信息。此表应包含以下列:ID、给定、姓氏、街道、门牌号、邮政编码、城市、电话、评论。目前,Hibernate在mysql数据库中为每个实体生成一个表。因此,有必要在每个实体类(客户、名称、地址)中定义@Id。但我想用一个@Id为客户保留一张表中的所有信息。 我怎样才

  • 问题内容: 我收到以下hibernate异常: 简化的Matchup类如下所示: 简化的Team类如下所示: 笔记: 比赛和团队都有子类。我不确定这是否会影响局势。 我的persistence.xml中列出了Matchup和Team都包括在内。 如果我在两个getter方法上都使用@Transient批注,该错误将消失。 谁能阐明为什么会发生这种异常? 问题答案: 我发现了问题:我没有将Team类

  • 您好,我是JPA Spring boot的新手,现在我正在尝试将两个表之间的连接转换为第三个表。所以我有一个医生和病人表,其中有它的属性,一个医生可以检查每个病人,一个病人可以看望每个医生。但是在一次检查中,不能有超过一个病人和一个医生。对于医生,我想保留他们检查过的患者的信息,分别是患者的信息,以及他们检查过的医生的信息。我想创建一个名为DoctorVisit的中间表,其中我有做检查的医生的id

  • 我试图解决的问题是在hibernate中避免列表属性中出现重复项。考虑下面的域名。 我使用标准API获取帐户。在查询中,我使用公司的左连接和帐户DescList属性的内连接执行读取。这有助于我在第一次选择中获得两个属性,并避免进一步选择。 我知道根实体(此处为帐户)可以在结果中重复。我可以用多种方法解决这个问题,比如,http://in.relation.to/2016/08/04/introdu