0

我有这样的代码

@ManyToMany(cascade = { CascadeType.ALL }) @JoinTable(name = "AssignedBook_Person", joinColumns = { @JoinColumn(name = "person_Id") }, inverseJoinColumns = { @JoinColumn(name = "book_Id") })

如您所见,我的 JoinTable 名称是 AssignedBook_Person,我想使用该代码从中获取一些数据

List borrowedBook = session createQuery(" from AssignedBook_Person ") .setCacheable(true).list();

但它给出了这个错误“AssignedBook_Person 未映射”

有谁知道我如何解决 JoinTable 问题。

谢谢

4

1 回答 1

0

您不能通过 HQL 直接查询数据库表,因为它不对数据库表进行操作 - 它对实体进行操作。这就是对象关系映射的主要思想。

连接表包含有关 Book 和 Person 之间关系的数据,因此可以通过选择其中一个实例然后检查相关实体来获取数据。

如果只需要 join_table 中的原始数据,可以使用原生查询:

session.createSQLQuery(SELECT person_id, book_id FROM AssignedBook_Person);
于 2013-02-14T19:33:02.253 回答