主题 : jeecms1.11.0内容表主键问题
级别: 童生
UID: 125649
积分:35 加为好友
威望: 2 精华: 0
主题:5 回复:9
注册时间:2018-09-12
在线时长:0.42
1#   发表于:2022-02-15 17:32:52  IP:61.136.*.*
    @Id
    @TableGenerator(name = "jc_content", pkColumnValue = "jc_content", initialValue = 0, allocationSize = 10)
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "jc_content")
上面是内容表主键策略,经过查看hibernate_sequences 表就是主键表,但是新增稿件的时候,发现主键表并没有增加,请问一下是什么原因?
因为我考虑扩展一个功能,直接网内容表里面写数据,请问这个表的主键策略是什么,麻烦给介绍一下
谢谢

答疑:
原来是jpa  hibernate缓存机制,自动获取10个id,正式这个allocationSize=10的作用
级别: 总版主
UID: 10736
积分:141843 加为好友
威望: 152 精华: 37
主题:220 回复:121813
注册时间:2010-09-08
在线时长:152.92
2#   发表于:2022-02-16 08:57:13  IP:59.210.*.*
@GeneratedValue 用于标注主键的生成策略,通过strategy 属性指定。默认情况下,JPA 自动选择一个最适合底层数据库的主键生成策略:SqlServer对应identity,MySQL 对应 auto increment。
@GeneratedValue 用于标注主键的生成策略,通过strategy 属性指定。默认情况下,JPA 自动选择一个最适合底层数据库的主键生成策略:SqlServer对应identity,MySQL 对应 auto increment。 
在javax.persistence.GenerationType中定义了以下几种可供选择的策略: 
–IDENTITY:采用数据库ID自增长的方式来自增主键字段,Oracle 不支持这种方式; 
–AUTO: JPA自动选择合适的策略,是默认选项; 
–SEQUENCE:通过序列产生主键,通过@SequenceGenerator 注解指定序列名,MySql不支持这种方式 
–TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。
路漫漫其修远兮,吾将上下而求索!
1 共1页