• 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选择应尽量避免使用自然主键,改用代理主键

  • 相关阅读:
    Intellij IDEA 使用总结
    Apache Camel之FTP组件学习
    谈一谈EasyUI中TreeGrid的过滤功能
    JAVA实用案例之图片水印开发
    三、SolrCloud的搭建
    style里面设置变量
    for 循环中 break-continue 与label标签的使用
    vue ref的用法
    Vuex实践
    vue 数据动态响应(Vue.set方法)
  • 原文地址:https://www.cnblogs.com/xyhero/p/9348889.html
Copyright © 2020-2023  润新知