zoukankan      html  css  js  c++  java
  • Caused by: java.sql.SQLSyntaxErrorException: Table 'sell.hibernate_sequence' doesn't exist

    数据表:

    create table 'product_category'(
        'category_id' int not null auto_increment,
        'category_name' varchar(64) not null comment '类目名字',
        ......  

    domain:    

    @Entity
    public class ProductCategory {
       @Id
       @GeneratedValue
       private Integer categoryId;
       private String categoryName;
       private Integer categoryType;
        setter... 
        getter...

    Repository:

    public interface ProductCategoryRepository extends JpaRepository<ProductCategory,Integer> {
    
    }

    测试代码:

    @Test
        public void saveTest(){
            ProductCategory productCategory = new ProductCategory();
            productCategory.setCategoryName("测试b");
            productCategory.setCategoryType(3);
            repository.save(productCategory);
        }

    报错:Caused by: java.sql.SQLSyntaxErrorException: Table 'sell.hibernate_sequence' doesn't exist

    解决:在domain实体类指明主键生成策略,保持数据库一致

    @Entity
    public class ProductCategory {
       @Id
       @GeneratedValue(strategy = GenerationType.IDENTITY)
       private Integer categoryId;
       private String categoryName;
       private Integer categoryType;

    JPA四种生成策略了解下。

    疑点:原文使用@GeneratedValue注解,即@GeneratedValue(strategy = GenerationType.AUTO),不是应该根据数据库支持的主键生成策略自动选择合适的吗,数据库中使用了auto_increment,为什么这边没有支持而报错?

  • 相关阅读:
    有些文件不需要配置,只需要放到resources下面
    RAFT算法
    HBase,region以及HFile概念
    GitHub搭建个人网站续
    sublime text 2 安装emmet插件
    前端收录
    Zepto
    将复杂form表单序列化serialize-object.js
    PHP 清除HTML代码、空格、回车换行符的函数
    Yii2 选择布局的方式
  • 原文地址:https://www.cnblogs.com/kongieg/p/11381411.html
Copyright © 2011-2022 走看看