注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

清风幻影的博客

Where there is love, I will be there.

 
 
 

日志

 
 
关于我

同是天涯沦落人,相逢何必曾相识. 天生我材必有用,千金散尽还复来. 天若有情天亦老,人间正道是沧桑. 月影西斜人已去, 堤上梅花情依旧, 此情故已成追忆, 美人如玉夜留香

网易考拉推荐

转载:使用JPA生成实体类后,主键每次插入,数量按50递增  

2013-04-16 10:41:21|  分类: hiber_1 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

http://zwman-hz.iteye.com/blog/1431532

转载:使用JPA生成实体类后,主键每次插入,数量按50递增,数据库:oracle,主键递增方式:sequence

作者:ghl116

Java Persistence API 简称JPA,它是作为EJB3.0规范( )中的附加持久规范而被开发出来。Hibernate3也使用JPA Annotation来替代以前hbm配置文件,在新项目使用了一下,感觉非常方便。但这几天出现了一个奇怪的问题。
@Entity()
@Table(name = "user_score_history")
public class UserScoreHistoryVO implements Serializable {
private int id;
private int userId;
private int scoreChange;
private int levelChange;
private String changeReason;
private String parameters;
private Timestamp createTime;

@Id
@SequenceGenerator(name="seq_user_score_history_id",sequenceName = "seq_user_score_history_id")
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "seq_user_score_history_id")
public int getId() {
return id;
}
...
}
但是每次保存新对象时都发现id都不对,与定义的sequence不一致,每一次都起始的id值都是50的倍数,而日志里看插入时也有调用sequence的sql语句。到网上查了一下,也没有结果。郁闷!看到一个对JPA的介绍
@SequenceGenerator如果使用 批注指定一个 SEQUENCE 类型的主键生成器,则可以使用 @SequenceGenerator 批注微调该主键生成器以:
更改分配大小以匹配应用程序要求或数据库性能参数
更改初始值以匹配现有的数据模型(例如,如果基于已经为其分配或保留了一组主键值的现有数据集构建)
使用现有数据模型中预定义的序列
列出了此批注的属性。有关更多详细信息,请参阅 。有关更多详细信息,请参阅 。
表 1-42 @SequenceGenerator 属性
属性必需说明name


SequenceGenerator 的名称必须匹配其 startegy 设置为 SEQUENCE 的 GeneratedValue 的名称。
allocationSize


默认值: 50.
默认情况下,JPA 持续性提供程序使用的分配大小为 50。
如果此分配大小与应用程序要求或数据库性能参数不匹配,请将 allocationSize 设置为所需的 int 值。
initialValue


默认值: 0.
默认情况下,JPA 持续性提供程序假设持续性提供程序将所有主键值的起始值设置为 0。
如果这与现有数据模型不匹配,请将 initialValue 设置为所需的 int 值。
sequenceName


默认值:JPA 持续性提供程序分配它自己创建的序列名。
如果要使用事先存在或预定义的序列,请将 sequenceName 设置为所需的 String 名称。

allocationSize默认值: 50???是不是这个,试着把allocationSize = 1加入@SequenceGenerator,果然就对了。
唉,这个世界连sun都不能相信了,还能相信谁啊!
  评论这张
 
阅读(629)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018