摘要:
这几天,因为框架方面的需求,需要给实体在保存时将数据库的默认值加载出来。Hibernate提供了这样一种机制,就是保存实体的时候,会返回一个序列化,如果id是自增主键,那么返回的就是插入的id。如果还有些列的话,那么我们根据返回的id去加载一次,这样其实会有三次操作:1 执行保存;2 查找出插入的主键;3 根据主键加载。趁没啥事,就去反编译了它底层代码,他们去查最新插入id是通过数据库本身提供的函数,他们在同一个连接上是非线程安全的。所以,思考了许久,决定采取另外一种方法,就是自己定义一个唯一键,这个键不一定是主键,能决定唯一就行,推荐用GUID,并且对于需要返回的列,则给出特性来标记。比如, 阅读全文