gpt4 book ai didi

java - 抽象模式类型 'User_Book' 未知

转载 作者:行者123 更新时间:2023-12-05 07:45:27 28 4
gpt4 key购买 nike

我有一个包含多个实体的数据库,特别是 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 实体吗?会不会像现在一样自动填充,即每当用户购买一本书时,是否会在表中记录这次购买?

最佳答案

User_Book 不是实体。因此你不能使用 createQuery , 但你可以使用 createNativeQuery执行 SQL 查询:

Query query = entityManager.createNativeQuery("SELECT * FROM User_Book");

结果将是 List<Object[]>

关于java - 抽象模式类型 'User_Book' 未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41633539/

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