介绍

在FDP3.0版本,主键策略得到进一步完善。可更好的支持业务开发。

FDP支持两种主键策略

  1. 由外部指定主键。
  2. 由DB生成主键,例如自增长的主键。

以上两种主键来源,请开发员根据业务需要在自行选用。

模式1--由外部指定主键

由业务层指定主键,如user.setId(100),表示这条user记录的主键是100,这是由外部指定。

值可能来自于其它表的主建,也可以是业务程序生成的值 。
若上面未指定,则由FDP框架生成长度为18位的主键,并保证唯一性。

示例:entity.setPkMode(1);

模式2--由DB负责生成主键

由DB负责生成主键,并返回给java程序供后续使用。(mysql使用自增长主键、oracle使用序列)

示例:entity.setPkMode(2);

说明:如果使用了entity.setPkMode(2),并且又同时设置了user.setId(100),那么 user.setId(100)无效。

其它

如果使用了模式2:

  • mysql库:每张表主键要设置成自增长的。
  • oracle库:每张表默认需要一个同名的序列,如user表的序列是user_seq,需手动创建

主键字段的数据类型:

  • mysql : bigint
  • oracle : number(20)

实体类的id属性的类型: java实体类的id是Long类型。 Long类型的ID 与数据库中的(number(20)、bigint) 可很好的配合工作。