我有一个用户,他有很多书:
public class User {
@OneToMany
@Cascade( { org.hibernate.annotations.CascadeType.ALL })
@JoinTable(name="user_book")
private Set<Book> books;
}
Run Code Online (Sandbox Code Playgroud)
这将在数据库中创建一个连接表:
|user_id|book_id|
-----------------
|1 |2 |
|1 |3 |
|2 |1 |
Run Code Online (Sandbox Code Playgroud)
问题是唯一约束仅在book_id列上.这意味着2个用户不能拥有相同的书.如果我想添加到user(id:1)a book(id:1),那么我得到:BatchUpdateException: Duplicate entry
这是正常的吗?或者这是错误?如果不是一个错误,我如何配置hibernate来创建唯一约束对(user_id,book_id)不仅book_id在连接表中.
休眠: 3.6.4.Final
MySQL的: 5.0.21
| 归档时间: |
|
| 查看次数: |
4516 次 |
| 最近记录: |