时间:2021-07-01 10:21:17 帮助过:4人阅读
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,为什么这边没有支持而报错?
Caused by: java.sql.SQLSyntaxErrorException: Table 'sell.hibernate_sequence' doesn't exist
标签:incr syn 实体 except integer rem generated 代码 ati