zoukankan      html  css  js  c++  java
  • Hibernate之OID

    在关系数据库中,主键用来识别记录,并保证每天记录的唯一性。在Java语言中,通过比较两个变量所引用对象的内存地址是否相同,或者比较两变量引用的对象是否相等。Hibernate为了解决两者之间的不同,使用对象标识符(OID)来标识对象的唯一性OID是关系数据库中主键在Java对象模型中的等价物。在运行时,Hibernate根据OID来维持Java对象和数据库中的对应关系。如下所示:
    Transaction tx = session.beginTransaction();
    User user1 = (User)session.load(User.class,new Long(1));
    User user2 = (User)session.load(User.class,new Long(1));
    User user3 = (User)session.load(User.class,new Long(3));
    应用程序在执行上述代码时,第一次OID为1的对象,从数据库中查找ID为1的记录,然后创建想要的User实例,并把它保存到session的缓存中,最后将该实例的引用赋值给变量user1,第二次加载OID为1的对象时,直接把session缓存中的OID为1的实例的引用赋值给user2,因此user1=user2的结果为true


    hibernate的对象标识符(OID)
     可以用<id>元素来设定OID,OID可以定义为short,int,long类型,默认情况下,hibernate生成持久类时,会将OID定义为java包装类型
      用ID元素中的<generator>子元素来设定标识符生成器,例如:
      <id type="long" column="id">
         <generator />
      </id>
      以下是hibernate提供的内置标识符生成器:
      1.increment
      2.identity
      3.sequence
      4.hilo
      5.native
      6.uuid
      7.assigned

  • 相关阅读:
    1022. 从根到叶的二进制数之和
    140. 单词拆分 II
    1640. 能否连接形成数组
    184. 部门工资最高的员工
    数据显示在视图中
    表单验证
    下拉框选中
    全选/全不选
    全选、全部选、反选、提交
    表单-放大缩小
  • 原文地址:https://www.cnblogs.com/writeLessDoMore/p/6725739.html
Copyright © 2011-2022 走看看