有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java抽象模式类型“User_Book”未知

我有一个包含多个实体的数据库,特别是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) 个答案