gpt4 book ai didi

hibernate 问题 - "Use of @OneToMany or @ManyToMany targeting an unmapped class"

转载 作者:行者123 更新时间:2023-12-02 20:22:34 26 4
gpt4 key购买 nike

我正在适应 Hibernate Annotations,并且遇到了一个问题,希望有人可以帮助解决。

我有 2 个实体,Section 和 ScopeTopic。该部分有一个 List 类成员,因此是一对多关系。当我运行单元测试时,我收到此异常:

Use of @OneToMany or @ManyToMany targeting an unmapped class: com.xxx.domain.Section.scopeTopic[com.xxx.domain.ScopeTopic]

我会假设该错误意味着我的 ScopeTopic 实体未映射到表?我看不出我做错了。以下是实体类:

<小时/>
@Entity
public class Section {
private Long id;
private List<ScopeTopic> scopeTopics;

public Section() {}

@Id
public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

@OneToMany
@JoinTable(name = "section_scope", joinColumns = {@JoinColumn(name="section_id")},
inverseJoinColumns = {@JoinColumn(name="scope_topic_id")} )
public List<ScopeTopic> getScopeTopic() {
return scopeTopic;
}

public void setScopeTopic(List<ScopeTopic> scopeTopic) {
this.scopeTopic = scopeTopic;
}
}
<小时/>
@Entity
@Table(name = "scope_topic")
public class ScopeTopic {
private Long id;
private String topic;

public ScopeTopic() {}

@Id
public Long getId() {
return id;
}

public void setId() {
this.id = id;
}

public String getTopic() {
return topic;
}

public void setTopic(String topic) {
this.topic = topic;
}
}
<小时/>

我很确定这是我自己缺乏理解的错,所以一些指导会很好,谢谢!

最佳答案

你的注释看起来不错。以下是需要检查的事项:

  • 确保注释是javax.persistence.Entity,而不是org.hibernate.annotations.Entity。前者使实体可被检测到。后者只是一个补充。

  • 如果您手动列出实体(在 persistence.xml、hibernate.cfg.xml 中或配置 session 工厂时),请确保您还列出了 ScopeTopic实体

  • 确保不同包中没有多个 ScopeTopic 类,并且您导入了错误的类。

关于 hibernate 问题 - "Use of @OneToMany or @ManyToMany targeting an unmapped class",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4956855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com