BOSUuid 加入了BOSType的概念,这个唯一码跟 BOSType有关,里面包含了BOSType的信息。 根据BOSType可以生产BOSUuid,同样,根据BOSUuid也可以找到BOSType.
BOSUuid与ObjectUuidPK :
BOSUuid表示数据库分录的ID,可以理解为数据库行的ID, 本质上,两者是一致的。只是在理解的角度不一样,一个从数据库的角度,一个从java对象的角度。
(1) BOSUuid –> IObjectPK:IObjectPK pk = new ObjectUuidPK(uuid);
(2) IObjectPK –> BOSUuid:BOSUuid.read(pk.toString());
(3) BOSUuid和IObjectPK –> String:uuid.toString()和pk.toString();
(4) String –> BOSUuid和IObjectPK:
BOSUuid.read(id);
IObjectPK pk = new ObjectUuidPK(BOSUuid.read(id));
BOSUuid 与ObjectUuidPK 的区别: BOSUuid表示数据库分录ID,可以理解为数据库行ID, 数据库行对应一个java对象,所以就用ObjectUuidPK表示java对象的ID. 本质上,两者是一致的。只是在理解的角度不一样,一个从数据库的角度,一个从java对象的角度
//EAS通过单据ID获得单据实体BOSTYPE
BOSUuid.getBOSObjectType(billID, true);
new ObjectStringPK(this.editData.getId().toString();//转换成ObjectStringPK
IObjectPK pk=new ObjectUuidPK(id);//转换成IObjectPk类型
String,BOSUuid,IObjectPK之间的相互转换
通过对象直接获取的Id类型为BosUuid类型,根据Id获取对象时,要求参数为主键IObjectPK类型
通常前后台调用接口传参时,使用的是String类型,因此需要集中类型至今相互转换
String id="ssss";
IObjectPK pk=new ObjectStringPK(id);//主键
//通过主键获取对象
XXXXInfo info=XXXXFactory.getRemoteInstance().getXXXInfo(pk);
//id Uuid pk之间相互转换
BOSUuid Uuid=info.getId();
pk=new ObjectUuidPK(Uuid);
info.setId(BosUUid.create(info.getBOSType()));//设置新的id