Hibernate查询Postgresql数据库时出现奇怪的表名-“关系不存在”
我的问题是从这个错误开始的:关系标签\文章\标签不存在 从标记类:Hibernate查询Postgresql数据库时出现奇怪的表名-“关系不存在”,hibernate,postgresql,one-to-many,hibernate-annotations,Hibernate,Postgresql,One To Many,Hibernate Annotations,我的问题是从这个错误开始的:关系标签\文章\标签不存在 从标记类: @Entity @Table(name = "tag") public class Tag { ... @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) private Set<ArticleTag> articleTags; ... 我已经激活了Hibernate的show_sql属性来进行一些调试,在某个时候它试图从这个表中选择一些东西
@Entity
@Table(name = "tag")
public class Tag {
...
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<ArticleTag> articleTags;
...
我已经激活了Hibernate的show_sql属性来进行一些调试,在某个时候它试图从这个表中选择一些东西:tag_article_tag。我发现它与Tag类标记的名称和集合articleTags的名称有关,集合articleTags的元素类型为ArticleTag table name article_Tag。我已将名称从tag更改为tag1,错误是:tag1\u article\u tag
我知道这个问题在某种程度上与一组对象有关,但我不知道到底是什么。有什么想法吗?当我发布这个问题时,我发现了问题: 在文章课上,我忘记了mappedBy字段
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<ArticleTag> articleTags;
应包括mappedBy字段:
@OneToMany(**mappedBy="tag"**, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<ArticleTag> articleTags;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<ArticleTag> articleTags;
@OneToMany(**mappedBy="tag"**, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<ArticleTag> articleTags;