日期:2014-05-20  浏览次数:20728 次

实体id问题
项目中一般都要根据主键操纵实体。之前都是用了自增长的id(sqlserver,mysql)。但是正式项目都不是这么做的(听说叫什么uuid?)。那id要怎么生成呢?而且hibernate里貌似id都是映射到自增主键。那实际操作就舍弃该主键用自己定义的?

------解决方案--------------------
import org.doomdark.uuid.UUID;
 import org.doomdark.uuid.UUIDGenerator;

UUIDGenerator generator = UUIDGenerator.getInstance();
UUID uuid = generator.generateRandomBasedUUID();
------解决方案--------------------
id要用,这个id只是数据的标识,使用它查询是非常快,但是这个id是隐试调用的,不要用于用户指定。别外,也要生成一个字符串(TID)的,这个是给用户用于指定数据的查询用,有一定的含意在里面,也可以用于后期的分库用。如:1120315....,这样的话就能通过TID来大概了解订单的创建时间或其他信息,用于显示调用,效率会比id慢。一般来说TID,TID与id最好都有。
------解决方案--------------------
两者不冲突,可以都用。