文档章节

JPA注解-@SequenceGenerator

无悔这一生
 无悔这一生
发布于 2012/11/13 18:41
字数 313
阅读 1.4W
收藏 3

      最近工作中用到了JPA的注解,也是第一次使用JPA的注解。把我在使用的过程中遇到的问题跟大家分享下吧,说的不对的地方,还望大家指出。

第一个问题:示例如下所示

@Entity
@Table(name = "jdps_content")   
@SequenceGenerator(name="SEQ_JDPS_content",sequenceName="SEQ_JDPS_CONTENT") 
public class Content {
	@Id
	@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="SEQ_JDPS_content") 
	private int id;
这是其中一个实体类,我使用的Oracle的数据库,主键采用oracle的序列,但是问题来了,我发现我的id增长不是以1递增,而是以50递增的,当时我就很纳闷了,后面我就上网查,原来也有人遇到了这个问题,原来是少了allocationSize=1 这个,原来JPA默认的递增大小是50。同时initialValue默认为0,一般都是设置为initialValue=1 修改后的如下所示:@SequenceGenerator(name="SEQ_JDPS_content",allocationSize=1,initialValue=1, sequenceName="SEQ_JDPS_CONTENT") 
还有一个要注意问题:注解到底是写在 get方法上,还是写在属性上,这个一定要统一,千万不能混淆使用,我推荐写在getter方法上。
我觉得大家在使用JPA之前,最好还是先看看JPA的文档,那么就不会犯我这样的错误了


© 著作权归作者所有

上一篇: Django学习记录-1
无悔这一生
粉丝 6
博文 14
码字总数 8349
作品 0
海淀
程序员
私信 提问
加载中

评论(1)

guodefu909
guodefu909
我也遇到这个问题,还好看到你这篇博文,谢谢
JPA之@GeneratedValue注解(转)

JPA的@GeneratedValue注解,在JPA中,@GeneratedValue注解存在的意义主要就是为一个实体生成一个唯一标识的主键(JPA要求每一个实体Entity,必须有且只有一个主键),@GeneratedValue提供了主键的生...

osc_imfpapvz
2018/01/09
6
0
JPA + SpringData 操作数据库--Helloworld实例

前言:谈起操作数据库,大致可以分为几个阶段:首先是 JDBC 阶段,初学 JDBC 可能会使用原生的 JDBC 的 API,再然后可能会使用数据库连接池,比如:c3p0、dbcp,还有一些第三方工具,比如 db...

osc_xl85dc6p
2018/07/05
5
0
JPA @Id 和 @GeneratedValue 注解详解

JPA @Id 和 @GeneratedValue 注解详解 @Id: @Id 标注用于声明一个实体类的属性映射为数据库的主键列。该属性通常置于属性声明语句之前,可与声明语句同行,也可写在单独行上。 @Id标注也可置...

osc_r590b6ja
2019/05/27
1
0
@GeneratedValue源码解析

JPA要求每一个实体必须有且只有一个主键,而@GeneratedValue提供了主键的生成策略,这就是@GeneratedValue注解存在的意义。本文将浅析@GeneratedValue的源码。 @GeneratedValue的源码如下: ...

osc_h9fpkpv6
2019/01/07
2
0
理解JPA注解@GeneratedValue

一、JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id, 其生成规则由@GeneratedValue设定的.这里的@id和@GeneratedValue都是JPA的标准用法,...

一生只为虞美人
2018/07/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

QEMU、KVM、libvirt三者间的关系

QEMU QEMU提供了一个开源的服务器全虚拟化解决方案,它可以使你在特定平台的物理机上模拟出其它平台的处理器,比如在X86 CPU上虚拟出Power的CPU,此时的Guest OS感觉不到虚拟机的存在,就像运行在...

osc_7ludm6s2
12分钟前
9
0
QEMU和KVM的关系

KVM是指在CPU硬件支持基础之上的虚拟化技术。没有CPU硬件虚拟化的支持,KVM是无法工作的。 准确来说,KVM是Linux的一个模块。可以用modprobe去加载KVM模块。加载了模块后(kvm和kvm-intel模块...

osc_3ytpwpyb
14分钟前
3
0
thymeleaf语法(二)

<span th:if="$(user.age) eq 23"></span> 运算符: gt  :great than  (大于)  > ge  :great equal  (大于等于)  >= eq  :equal  (等于)  = lt  :less than  (小于) ......

osc_nt0jrqne
16分钟前
3
0
送给发烧友:Python条件语句的七种写法T

有的人说 Python 入门容易,但是精通难的语言,这点我非常赞同。Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者...

osc_0kdyznad
17分钟前
11
0
人物-企业家:车建新

ylbtech-人物-企业家:车建新 车建新 ,男,1966年6月18日生于江苏省常州市,红星美凯龙家居集团股份有限公司(Red Star Macalline Group Corporation Ltd.)董事长兼CEO,并担任全国工商联执...

osc_z2ru77w0
18分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部