抽象模式类型“User_Book”未知

时间:2017-01-13 11:23:34

标签: javascript sql jpa jql

我有一个包含多个实体的数据库,特别是BookUser。在它们之间存在ManyToMany这样的关系:

图书:

@Entity
@Table(name = "Books")
public class Book implements Serializable
{
  private static final long serialVersionUID = 1L;

  @Id
  @GeneratedValue(strategy = GenerationType.TABLE)
  @Column(name = "bookId", nullable = false, unique = true)
  private Long id;

  @Column(name = "title", nullable = false)
  private String title;

  @Column(name = "price", nullable = false)
  private int price;

  @ManyToMany(fetch = FetchType.EAGER)
  @JoinTable(name = "User_Book",
             joinColumns = @JoinColumn(name = "bookId"),
             inverseJoinColumns = @JoinColumn(name = "userId"))
  private Set<UserAccount> users;

用户:

@Entity
@Table(name = "UserAccounts")
public class UserAccount implements Serializable
{
  private static final long serialVersionUID = 1L;

  @Id
  @GeneratedValue(strategy = GenerationType.TABLE)
  @Column(name = "userId", nullable = false, unique = true)
  private Long id;

  @Column(name = "username", nullable = false, unique = true)
  private String username;

  @Column(name = "password", nullable = false)
  private String password;

  @ManyToMany(fetch = FetchType.EAGER)
  @JoinTable(name = "User_Book",
             joinColumns = @JoinColumn(name = "userId"),
             inverseJoinColumns = @JoinColumn(name = "bookId"))
  Set<Book> purchasedBooks;

一切正常,表User_Book确实是在数据库中创建的。问题似乎与此表的访问有关。

例如,

Query query = entityManager.createQuery("SELECT u FROM User_Book u");

一直告诉我以下内容:

  

The abstract schema type 'User_Book' is unknown

那么,我应该从头开始创建User_Book实体吗?它会像现在一样自动填充,也就是说,每当用户购买一本书时,这次购买是否会记录在表格中?

0 个答案:

没有答案