2009.11.20——Hibernate(2) 主健生成问题(2)
为了屏蔽底层数据库的差异,我主键的生成策略用的是Table的,如下
@Id
@Column(name="student_id")
@TableGenerator(name="stuGen",
table="ID_GEN",
pkColumnName="GEN_KEY",
valueColumnName="GEN_VALUE",
pkColumnValue="STU_ID",
allocationSize=1)
@GeneratedValue(strategy=GenerationType.TABLE,generator="stuGen")
建表的sql如下:
实体类Student:
create table STUDENT
(
STUDENT_ID NUMBER(2) not null,
NAME VARCHAR2(5)
)
生成主键的表Id_gen
create table ID_GEN
(
ID NUMBER not null,
GEN_KEY VARCHAR2(255) not null,
GEN_VALUE NUMBER not null
)
并插入一条记录:
insert into id_gen values(1,'student_id',1);
执行的save操作:
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");
StudentService ss = (StudentService)ctx.getBean("studentService");
Student s = new Student();
s.setName("fdsa");
ss.save(s);
但是 当我运行程序后,
2009/11/20 11:01:59.860 WARN JDBCExceptionReporter.logExceptions() : SQL Error: 1400, SQLState: 23000
2009/11/20 11:01:59.860 ERROR JDBCExceptionReporter.logExceptions() : ORA-01400: 无法将 NULL 插入 ("SYSTEM"."ID_GEN"."ID")
Exception in thread "main" org.springframework.dao.DataIntegrityViolationException: could not get or update next value; nested exception is org.hibernate.exception.ConstraintViolationException: could not get or update next value
Caused by: org.hibernate.exception.ConstraintViolationException: could not get or update next value
Caused by: java.sql.SQLException: ORA-01400: 无法将 NULL 插入 ("SYSTEM"."ID_GEN"."ID")
=======================================================================================
迫于无奈,我用的是oracle的数据库,所以我就用只好用sequence了
注释:
@SequenceGenerator (name="student_seq",
sequenceName="student_seq",initialValue=1,allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="student_seq")
sql语句:
create sequence student_seq nocache;
然后可以执行了
但是,这个通用性 也就被破坏了
分享到:
相关推荐
11 java面试——深圳-OPPO-Java高级.pdf 12 java面试——深圳-丰巢科技-Java高级.pdf 13 java面试——深圳-乐信-Java高级.pdf 14 java面试——深圳-蚂蚁金服-Java高级.pdf 15 java面试——深圳-商汤科技-Java高级....
基于因子分析的我国A股上市...争力评价——以医药企业为例_张澳.caj
嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟...
python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目...
微信小程序——移动端商城(截图+源码).zip 微信小程序——移动端商城(截图+源码).zip 微信小程序——移动端商城(截图+源码).zip 微信小程序——移动端商城(截图+源码).zip 微信小程序——移动端商城(截图+...
微信小程序——用户反馈组件(截图+源码).zip 微信小程序——用户反馈组件(截图+源码).zip 微信小程序——用户反馈组件(截图+源码).zip 微信小程序——用户反馈组件(截图+源码).zip 微信小程序——用户反馈...
C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——...
python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ...
微信小程序——小游戏-别踩白块(截图+源码).zip 微信小程序——小游戏-别踩白块(截图+源码).zip 微信小程序——小游戏-别踩白块(截图+源码).zip 微信小程序——小游戏-别踩白块(截图+源码).zip 微信小程序...
微信小程序——面包旅行:界面设计,文本展示(截图+源码).zip 微信小程序——面包旅行:界面设计,文本展示(截图+源码).zip 微信小程序——面包旅行:界面设计,文本展示(截图+源码).zip 微信小程序——面包...
java毕业设计——基于ssm的仿微博系统设计与实现(源码+数据库).zip java毕业设计——基于ssm的仿微博系统设计与实现(源码+数据库).zip java毕业设计——基于ssm的仿微博系统设计与实现(源码+数据库).zip java毕业...
微信小程序——学校管理小程序以重邮为例(截图+源码).zip 微信小程序——学校管理小程序以重邮为例(截图+源码).zip 微信小程序——学校管理小程序以重邮为例(截图+源码).zip 微信小程序——学校管理小程序以...
java毕业设计——基于ssm的房屋租赁系统设计与实现(源码+数据库).zip java毕业设计——基于ssm的房屋租赁系统设计与实现(源码+数据库).zip java毕业设计——基于ssm的房屋租赁系统设计与实现(源码+数据库).zip java...
java毕业设计——商品供应管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——商品供应管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——商品供应管理系统的设计与实现...
java毕业设计——基于spring boot的在线招标网站设计与实现(源码+数据库).zip java毕业设计——基于spring boot的在线招标网站设计与实现(源码+数据库).zip java毕业设计——基于spring boot的在线招标网站设计与...
java毕业设计——java基于J2ME的手机游戏开发设计与实现(论文+源代码).zip java毕业设计——java基于J2ME的手机游戏开发设计与实现(论文+源代码).zip java毕业设计——java基于J2ME的手机游戏开发设计与实现(论文+源...
java毕业设计——物资管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——物资管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——物资管理系统的设计与实现(论文+答辩PPT+...
java毕业设计——文章发布系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——文章发布系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——文章发布系统的设计与实现(论文+答辩PPT+...
2,jdk-170.tar.gz ——————————JDK1.7deb包 3,switch_java.sh -------------------------java其它版本切换 4,check_java.sh———————————版本核对 注意:使用命令接口切换时,需要将自己配置的...