建一张主键表

    @Override
public boolean equals(Object o) {
return (o == this || (o instanceof AbstractEntity && uid().equals(((AbstractEntity)o).uid())));
}
CREATE TABLE  tb_generator (

  id int(20) unsigned NOT NULL auto_increment,

  gen_name varchar(255) NOT NULL,

  gen_value int(20) NOT NULL,

  PRIMARY KEY  (id)

)
INSERT INTO tb_generator ( gen_name ,gen_value ) VALUES ( 'CUSTOMER_PK',1); INSERT INTO tb_generator ( gen_name ,gen_value ) VALUES ( 'CONTACT_PK',100);

指定全局主键


@Id @GeneratedValue(strategy = GenerationType.TABLE,generator="customer_gen") @TableGenerator(name = "customer_gen", table="tb_generator", pkColumnName="gen_name", valueColumnName="gen_value", pkColumnValue="CUSTOMER_PK", allocationSize=1 )

JPA TableGenerator

@Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)

public @interface TableGenerator {

String name();

String table() default "";

String catalog() default "";

String schema() default "";

String pkColumnName() default "";

String valueColumnName() default "";

String pkColumnValue() default "";

int initialValue() default 0;

int allocationSize() default 50;

UniqueConstraint[] uniqueConstraints() default {};

}
/*
name表示该表主键生成策略的名称,它被引用在@GeneratedValue中设置的“generator”值中。 table属性表示表生成策略所持久化的表名,例如,这里表使用的是数据库中的“tb_generator”。 catalog属性和schema具体指定表所在的目录名或是数据库名。 pkColumnName属性的值表示在持久化表中,该主键生成策略所对应键值的名称。例如在“tb_generator”中将“gen_name”作为主键的键值 valueColumnName属性的值表示在持久化表中,该主键当前所生成的值,它的值将会随着每次创建累加。例如,在“tb_generator”中将“gen_value”作为主键的值 pkColumnValue属性的值表示在持久化表中,该生成策略所对应的主键。例如在“tb_generator”表中,将“gen_name”的值为“CUSTOMER_PK”。 initialValue表示主键初识值,默认为0。 allocationSize表示每次主键值增加的大小,例如设置成1,则表示每次创建新记录后自动加1,默认为50。 UniqueConstraint与@Table标记中的用法类似
*/

最新文章

  1. JVM学习(2)——技术文章里常说的堆,栈,堆栈到底是什么,从os的角度总结
  2. Java内部类与外部类的那些事
  3. Consul 启动命令
  4. linux下用Apache一个IP多个域名建虚拟主机
  5. 前端基础 - Defer对象
  6. iOS 5.0 后UIViewController新增:willMoveToParentViewController和didMoveToParentViewCon
  7. StructLayout特性
  8. 开源原生JavaScript插件-CJPCD(省市区联动)
  9. 为什么python适合写爬虫?(python到底有啥好的?!)
  10. 我的第一个python web开发框架(3)——怎么开始?
  11. caffe之路-SIGTERM信号捕捉
  12. 从源码浅析Java中的Lock和AbstractQueuedSynchronizer
  13. (C++)string类杂记
  14. [Swift]LeetCode565. 数组嵌套 | Array Nesting
  15. gitlab 之 项目管理
  16. MySQL 通讯协议
  17. MATLAB 按条件进行加和
  18. zeromq学习记录(六)C语言示例
  19. php类库安装xml
  20. 解决mysql控制台查询数据乱码的问题,有图有真相

热门文章

  1. mysql比较时间大小unix_timestamp
  2. python中的ValueError
  3. nandflash驱动程序编写
  4. js控制div滚动条,滚动滚动条使div中的元素可见并居中
  5. python学习1
  6. 内网劫持渗透新姿势:MITMf简要指南
  7. codevs 1228 苹果树 树链剖分讲解
  8. JAVA设计模式之3-抽象工厂模式
  9. C#简单的对象交互
  10. docker学习(5) 在mac中创建mysql docker容器