mysql - 如何在hibernate中使用带有注释的字符串作为主键

标签 mysql hibernate spring-mvc

严重:路径 [] 上下文中 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/

相关文章:

php - 如何在 MySQL 和 PHP 中使用嵌套集获取结构化结果?

c# - 主动拒绝 C# 与 Ubuntu MySQL 服务器的连接

mysql - 使用mysql计算数据集中的峰值

java - 有什么方法可以找出(在运行时)哪个实体导致了 ConstraintViolationException?

java - Spring REST 服务证书身份验证

spring Controller 中的 java.lang.StackOverflowError

javascript - 使用 jQuery 拖放从 SQL 表中删除一行

spring - Spring Boot Batch 中的 Hibernate_sequence 错误(预定)

java - Vertx for Java 中的依赖注入(inject)/ORM

java - Spring MVC 404未找到错误