Hibernate中get()方法和load()方法中有个参数OID,这个OID具体指的是什么,是数据库表中的一个列值吗?

解决方案 »

  1.   

    yes 主键列。。get()查询的时候会查询所有列,但是load()不会,,需要用的时候才会发语句。。
      

  2.   

    指的是一张表的主键ID,将这个ID传给get或是load,就能拿到数据并封装成一个对象。
    get是及时的发出select语句,而load是延迟的,用到的时候才会发出select语句。
    xxx = session.get(XXX.class,1);//在这一句发出xxx = session.load(XXX.class,1);
    System.out.println(xxx);//在这一句发出
      

  3.   

    hibernate中的oid是所要查询对象的无任何业务意义的标示符,在类中标示对象,在数据库中标示一条记录(主键);get(obj,oid)方法会根据你所提供的oid去数据库查询是否有这样一条对象的记录并返回数据对象;load(obj,oid)方法会默认认为在数据库当中有oid所标示的记录,他不会直接在调用load方法时去查询数据库返回数据,而是生成并返回一个代理对象,当我们真正需要用到oid所标示的那个对象时,他才调用返回的代理对象里的方法并将oid作为方法执行的参数去数据库获取真实对象数据。