休眠@ManyToOne引用未知实体

2022-08-31 20:47:07

我收到以下休眠异常:

@OneToOne or @ManyToOne on Matchup.awayTeam references an unknown entity: Team

简化的 Matchup 类如下所示:

@Entity public class Matchup implements Serializable 
{
   protected Team awayTeam;

   @ManyToOne 
   @JoinColumn(name="away_team_id")
   public Team getAwayTeam() {
      return awayTeam;
   }
}

简化的 Team 类如下所示:

@Entity
public class Team implements Serializable {
    protected List<Matchup> matchups;

    @OneToMany(mappedBy="awayTeam", targetEntity = Matchup.class,
    fetch=FetchType.EAGER, cascade=CascadeType.ALL)
    public List<Matchup> getMatchups() {
       return matchups;
    }
}

笔记:

  • Matchup和Team都有子类。我不确定这是否会影响情况。
  • Matchup和Team都列在我的坚持中.xml被列为包括在内。
  • 如果我在两个 getter 方法上都放置@Transient注释,则错误将消失。

谁能说明为什么会发生这种异常?


答案 1

我找到了问题:我没有将类 Team 添加到 Hibernate 对象。因此,Hibernate无法识别该类。AnnotationConfiguration


答案 2

除了休眠.cfg.xml中的条目外,还需要对引用的类进行注释。@Entity


推荐