我有以下表格:
BOOK: id,name
USER: id,username,status
BOOK_USER: book_id, user_id
我想在我的应用程序中使用可以设置阅读状态的功能。例子。开始阅读停止阅读。
在我Book.java
的介绍USER
中,表是ManyToMany
@JsonIgnore
@ManyToMany
@JoinTable(name = "user",
joinColumns = @JoinColumn(name = "book_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"))
public List<User> users;
在我的 User.java
@ManyToMany(mappedBy = "users")
public List<Book> bookList;
当用户在开始阅读时设置停止阅读时,我想更新用户表。这个方法是从我的BookController.java
更新方法中调用的。
public void changeReadingStatus() {
for (User user : users) {
user.setStatus("Finished Reading");
user.update();
}
}
我收到一个错误
Caused by: io.ebean.DataIntegrityException: Error when batch flush on sql: insert into BOOK_USER (book_id, user_id) values (?, ?)
at io.ebean.config.dbplatform.SqlCodeTranslator.translate(SqlCodeTranslator.java:44)