严重:路径 [] 上下文中 servlet [appServlet] 的 Servlet.service() 抛出异常 [请求处理失败; 嵌套异常是 org.hibernate.id.IdentifierGenerationException: 在调用 save() 之前必须手动分配此类的 ids:com.cihangir.model.Book] 以及根本原因 org.hibernate.id.IdentifierGenerationException:在调用 save() 之前必须手动分配此类的 ids: com.cihangir.model.Book
package com.cihangir.model;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Book {
@Id
@Column(name = "ISBN", nullable = false, unique=true)
@Basic(optional=false)
private String ISBN;
private String bookTitle;
private String category;
private String author;
public Book() {
}
public Book(String ISBN, String bookTitle, String category, String author) {
this.ISBN=ISBN;
this.bookTitle = bookTitle;
this.category = category;
this.author = author;
}
public String getISBN() {
return ISBN;
}
public void setISBN(String iSBN) {
ISBN = iSBN;
}
public String getBookTitle() {
return bookTitle;
}
public void setBookTitle(String bookTitle) {
this.bookTitle = bookTitle;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
我该如何解决它?你能帮我吗?
最佳答案
使用以下代码将String ISBN
作为主键。
@Id
@GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
@Column(name = "ISBN")
private String ISBN;
或者
您可以从 Java 创建 UUID
,如下代码所示:
UUID.randomUUID().toString();
关于mysql - 如何在hibernate中使用带有注释的字符串作为主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39849218/