介绍
在FDP3.0版本,主键策略得到进一步完善。可更好的支持业务开发。
FDP支持两种主键策略
- 由外部指定主键。
- 由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) 可很好的配合工作。