zoukankan      html  css  js  c++  java
  • hibernate框架学习之持久化对象OID

    持久化对象唯一标识——OID

    1)数据库中使用主键可以区分两个对象是否相同
    2)Java语言中使用对象的内存地址区分对象是否相同
    3)Hibernate中使用OID区分对象是否相同
    Hibernate认为每一个不同的对象应该具有一个唯一的标识,称这个标识为OID;
    为了使数据模型与数据库表一样使用主键来进行数据的区分,在数据模型类中声明唯一标识(uuid),作为Hibernate管理对象的唯一标识,并使用该标识与数据库表中的主键进行一一对应;
    为配合后期框架的使用,还使用该标识设定Java对象区分的规则,即参照此属性生成hashCode与equals方法。

    OID的选取规则
    1)Java对象中可以使用任意属性作为OID,为什么要使用uuid作为唯一标识
    2)自然主键:具有业务含义
    例如个人信息中的身份证号,不仅是唯一的,而且还具有业务含义,这种属性虽然可以做为OID,但是其具有一定的业务含义。选择OID尽量避免使用具有业务含义的属性
    3)代理主键:不具有业务含义
    声明一个不具有任何业务含义的属性,仅用于区分对象,这种属性即便暴漏给最终用户查看,也不具有安全隐患
    4)OID选择应尽量避免使用自然主键,改用代理主键

  • 相关阅读:
    延迟消失菜单
    控制产品上下滚动
    百度音乐全选
    百度文库评分两种代码写法
    选项卡
    搜狐视频
    m 调用传参图片切换
    IIS 7.5站点配置
    jquery plugins —— datatables 搜索后汇总
    jquery plugins —— datatables 增加行号
  • 原文地址:https://www.cnblogs.com/xyhero/p/9348889.html
Copyright © 2011-2022 走看看