当前位置:编程学习 > JAVA >>

关于Hibernate中get()方法和load()方法中参数OID

Hibernate中get()方法和load()方法中有个参数OID,这个OID具体指的是什么,是数据库表中的一个列值吗? --------------------编程问答-------------------- 指得是表中某条数据的主键 --------------------编程问答-------------------- 指的是数据库中某个表中的主键。 --------------------编程问答-------------------- yes 主键列。。get()查询的时候会查询所有列,但是load()不会,,需要用的时候才会发语句。。。。。 --------------------编程问答-------------------- 对是主键, 不过一个用的是当前就加载,  而后一个则是延迟加载... --------------------编程问答-------------------- 指的是一张表的主键ID,将这个ID传给get或是load,就能拿到数据并封装成一个对象。
get是及时的发出select语句,而load是延迟的,用到的时候才会发出select语句。
xxx = session.get(XXX.class,1);//在这一句发出

xxx = session.load(XXX.class,1);
System.out.println(xxx);//在这一句发出 --------------------编程问答-------------------- hibernate中的oid是所要查询对象的无任何业务意义的标示符,在类中标示对象,在数据库中标示一条记录(主键);

get(obj,oid)方法会根据你所提供的oid去数据库查询是否有这样一条对象的记录并返回数据对象;

load(obj,oid)方法会默认认为在数据库当中有oid所标示的记录,他不会直接在调用load方法时去查询数据库返回数据,而是生成并返回一个代理对象,当我们真正需要用到oid所标示的那个对象时,他才调用返回的代理对象里的方法并将oid作为方法执行的参数去数据库获取真实对象数据。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,