`
xitong
  • 浏览: 6188897 次
文章分类
社区版块
存档分类
最新评论

Hibernate之OID

 
阅读更多

在关系数据库表中,主键用来识别记录,并保证每天记录的唯一性。在Java语言中,通过比较两个变量所引用对象的内存地址是否相同,或者比较两百变量引用的对象之是否相同来判断两对象是否相等。Hibernate为了解决二者之间的不同,使用对象标识符(OID)来标识对象的唯一性。OID是关系数据库中主键在Java对象模型中的等价物。在运行时,hibernate根据OID来维持Java对象和数据库表中的对应关系。如下代码所示:

  1. Transactiontx=session.beginTransaction();
  2. Useruser1=(User)session.load(User.class,newLong(1));
  3. Useruser2=(User)session.load(User.class,newLong(1));
  4. Useruser3=(User)session.load(User.class,newLong(3));

应用程序在执行上述代码时,第一次假装OID为1的user对象,从数据库中查找ID为1的记录,然后创建想要的User实例,并把它保存的session缓存中,最后将该实例的引用赋值给变量user1,第二次加载OID为1的对象是,直接把session缓存中OID为1的实例的引用赋值给变量user2,因此,表达式user1=user2的结果为TRUE。


转自:http://blog.csdn.net/sanmaofly/article/details/5863273

分享到:
评论

相关推荐

    Hibernate 课件及源代码

    内容涵盖安装 Hibernatetools 插件、Session 核心方法、持久化对象生命周期、对象关系映射(1-n、1-1、n-n、继承映射)、检索策略、检索方式(对象导航图、OID 检索、HQL、QBC、本地SQL)、Hibernate 一\二级缓存、...

    hibernate 3中的缓存小结

    而Hibernate仅仅是把与当前持久对象关联的对象的OID存放到缓存中。 如果希望把整个关联的对象的所有数据都存入缓存, 则要在相应关联的对象的映射文件中配置元素 --> </hibernate-mapping>

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

    6.3 Hibernate用对象标识符(OID)来区分对象 6.4 Hibernate的内置标识符生成器的用法  6.4.1 increment标识符生成器  6.4.2 identity标识符生成器  6.4.3 sequence标识符生成器  6.4.4 hilo标识符生成器  ...

    Hibernate中单一映射笔记

    Hibernate开发过程(单一映射体) 1创建持久类XXXX.java(要有oid字段:唯一且不具有业务含义;所有属性都有getter/setter方法;空的构造方法;不含oid的构造方法) 2创建映射文件XXXX.hbm.xml(包,类,id,字段) 3...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    6.3 Hibernate用对象标识符(OID)来区分对象 126 6.4 Hibernate的内置标识符生成器的用法 128 6.4.1 increment标识符生成器 131 6.4.2 identity标识符生成器 133 6.4.3 sequence标识符生成器 134 6.4.4 hilo...

    Hibernate内置标识符生成器

    Hibernate允许把OID定义为short,int,long以及他们的包装类型。

    hibernate的详细学习笔记

    Oracleꪰw create table t_ad (oid number(15) primary key, ACTNO varchar(20) not null unique,BALANCE number(20)); UÏ=w ü³%!g POJO---- POJO 1Hibernate ³äøõñ.uQ°n@R!Domain Object (T%ä]...

    hibernate总结

    a) 不在一级缓存之中 b) 数据库可能有记录和它对应,也可能没有记录和它对应 c) 从一个持久态对象转化过来的,从session的一级缓存中出来的,因为调用了session的一些方法,产生了这种对象(session.close()) ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

    6.3 Hibernate用对象标识符(OID)来区分对象 6.4 Hibernate的内置标识符生成器的用法  6.4.1 increment标识符生成器  6.4.2 identity标识符生成器  6.4.3 sequence标识符生成器  6.4.4 hilo标识符生成器  ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

    6.3 Hibernate用对象标识符(OID)来区分对象 6.4 Hibernate的内置标识符生成器的用法  6.4.1 increment标识符生成器  6.4.2 identity标识符生成器  6.4.3 sequence标识符生成器  6.4.4 hilo标识符生成器  ...

    精通Hibernate:对象持久化技术第二版part3

    6.3 Hibernate用对象标识符(OID)来区分对象 126 6.4 Hibernate的内置标识符生成器的用法 128 6.4.1 increment标识符生成器 131 6.4.2 identity标识符生成器 133 6.4.3 sequence标识符生成器 134 6.4.4 hilo...

    通俗易懂的Hibernate教程(含配套资料)

    内容涵盖安装 Hibernatetools 插件、Session 核心方法、持久化对象生命周期、对象关系映射(1-n、1-1、n-n、继承映射)、检索策略、检索方式(对象导航图、OID 检索、HQL、QBC、本地SQL)、Hibernate 一二级缓存、...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

    6.3 Hibernate用对象标识符(OID)来区分对象 6.4 Hibernate的内置标识符生成器的用法  6.4.1 increment标识符生成器  6.4.2 identity标识符生成器  6.4.3 sequence标识符生成器  6.4.4 hilo标识符生成器  ...

    JSP开发中hibernate框架的常用检索方式总结

    OID检索:根据唯一标识OID检索数据 对象导航检索:根据某个对象导航查询与该对象关联的对象数据 HQL检索:通过query接口对象查询 QBC检索:通过criteria接口对象查询 SQL检索:通过SQL语句查询  2、HQL检索...

    hibernate轻松上手

    介绍了依赖注入,AOP,让你轻松上手

    赛璐oid:正在复兴:基于角色的Ruby并发对象框架

    展望未来,先前处于Hibernate状态的维护者将在GSoC 2020期间支持未来的主要维护者 。 她的计划超出了夏季计划的范围,并且旨在共同复兴Celluloid的社区和代码库。 支持这一过程的是和GSoC校友 。 我们欢迎您在这项...

    葵花宝典java面试

    ②OID检索? ③HQL检索? ④QBC检索? ⑤本地SQL检索 2. Forward与Global-Forward的区别 答:Forward是根据Action return的值找到对应的JSP页。当多个Action共同return同一个值时,可将这个Forward元素写在Global-...

    java 经典面试题 于网络分享

    5. Java语言中,方法的重写...8.以下哪些不是Hibernate的检索方式: A、导航对象图检索 B、OID检索 C、ORM检索 D、QBC检索 E、本地SQL检索 F、HQL检索 答案:C 9.以下代码定义了一个变量,如何输出这个变量的值?

    jdbc基础和参考

    3.hibernate的配置文件(hibernate.cfg.xml)得存在 4.POJO.hbm.xml文件存在 5.hibernate的jar包以及数据库的驱动包存在 Hibernate的编程: 1.构建Configuration对象读取配置文件 2.读取映射文件 3.构建SessionFactory...

Global site tag (gtag.js) - Google Analytics