我有类似的代码
@ManyToMany(cascade = {CascadeType.ALL})@JoinTable(name =“AssignedBook_Person”,joinColumns = {@ JoinColumn(name =“person_Id”)},inverseJoinColumns = {@JoinColumn(name =“book_Id”)} )
如您所见,我的JoinTable名称是AssignedBook_Person,我想从该代码中获取一些数据
列出borrowedBook = session createQuery(“来自AssignedBook_Person”) .setCacheable(真).LIST();
但它给出了这个错误“AssignedBook_Person未映射”
有没有人知道如何解决JoinTable问题。
由于
答案 0 :(得分:0)
您不能通过HQL直接查询数据库表,因为它不对数据库表进行操作 - 它对实体进行操作。这是对象关系映射的主要思想。
连接表包含有关Book和Person之间关系的数据,因此可以通过选择其中一个实例然后检查相关实体来获取数据。
如果只需要join_table中的原始数据,可以使用本机查询:
session.createSQLQuery(SELECT person_id, book_id FROM AssignedBook_Person);