首先讲一下调试技巧;;
@javax.persistence.TableGenerator(
name="Teacher_GEN",
table="GENERATOR_TABLE", //表明
pkColumnName = "key", //字段
valueColumnName = "value", //字段的值
pkColumnValue="Teacher", //记录名
allocationSize=1//记录值, 这里是1取完之后自动加一
)
由于我
Unsuccessful: create table GENERATOR_TABLE ( key varchar(255), value integer ) 报错;
把这条sql语句拿去execute一下, 发现key是关键词,把字段key换个名字就行了
@javax.persistence.TableGenerator(
name="Teacher_GEN",
table="GENERATOR_TABLE", //表明
pkColumnName = "pk_key", //字段
valueColumnName = "pk_value", //字段的值
pkColumnValue="Teacher", //记录名
allocationSize=1//记录值, 这里是1取完之后自动加一
)
运行结果:
14:58:04,411 INFO SchemaExport:226 - Running hbm2ddl schema export
14:58:04,416 DEBUG SchemaExport:242 - import file not found: /import.sql
14:58:04,417 INFO SchemaExport:251 - exporting generated schema to database
14:58:04,420 DEBUG SchemaExport:377 -
drop table if exists Student
14:58:04,512 DEBUG SchemaExport:377 -
drop table if exists Teacher
14:58:04,516 DEBUG SchemaExport:377 -
drop table if exists GENERATOR_TABLE
14:58:04,520 DEBUG SchemaExport:377 -
create table Student (
id integer not null,
name varchar(255),
age integer,
primary key (id)
)
14:58:04,662 DEBUG SchemaExport:377 -
create table Teacher (
id integer not null,
brithday date,
hobby varchar(255),
name varchar(255),
title varchar(255),
primary key (id)
)
14:58:04,811 DEBUG SchemaExport:377 -
create table GENERATOR_TABLE (
pk_key varchar(255),
pk_value integer
)
14:58:04,955 INFO SchemaExport:268 - schema export complete
Hibernate:
insert
into
Teacher
(brithday, hobby, name, title, id)
values
(?, ?, ?, ?, ?)
desc generator_table;
mysql> select * from generator_table;
+---------+----------+
| pk_key | pk_value |
+---------+----------+
| Teacher | 2 |
+---------+----------+
1 row in set (0.03 sec)
发现value=2了 因为每次查一下都会加一
再Rerun Test(Junit框的一个绿色按钮)一下;
一般用在跨数据库平台,了解一下就够了,工作中比较少用
版权声明:本文为博主原创文章,未经博主允许不得转载。