gpt4 book ai didi

hibernate - HQL JoinTable 无法访问

转载 作者:行者123 更新时间:2023-12-03 07:58:02 26 4
gpt4 key购买 nike

我在媒体和标签之间有多对多的关系:

中等:

@ManyToMany(fetch=FetchType.EAGER)
@IndexColumn(name="tags_index_column")
@JoinTable(name="tag_map",
joinColumns={@JoinColumn(name="tag_id")},
inverseJoinColumns={@JoinColumn(name="item_id")})
private List<Tag> tags;

标签:

@ManyToMany(mappedBy="tags")
@JoinTable(name="tag_map",
joinColumns={@JoinColumn(name="item_id")},
inverseJoinColumns={@JoinColumn(name="tag_id")})
private List<Medium> media;

我尝试从 hql 查询连接表,但总是出现异常:

String resultQueryString = "From tag_map"

Query resultQuery SessionFactory.getCurrentSession().createQuery(resultQueryString);

异常(exception):

org.springframework.orm.hibernate3.HibernateQueryException: tag_map is not mapped [From tag_map]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: tag_map is not mapped [From tag_map]

我基本上想要做的是查询所有具有特定 id 标签的媒体。不幸的是,我无法访问可连接的。

有什么建议吗? :)

最佳答案

HQL 查询是根据实体而非表编写的,因此您无法查询任意表表。

因此,您需要根据实体之间的逻辑关系而不是直接访问连接表来制定查询,如下所示:

select m from Medium m join m.tags t where t.id = ?

另请参阅:

关于hibernate - HQL JoinTable 无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4944034/

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