Student s1=(Student)session.get(Student.class, Long.valueOf(1));
Student s2=(Student)session.get(Student.class, Long.valueOf(2));
Student s3=(Student)session.get(Student.class, Long.valueOf(1));
System.out.println(s1==s2); //false
System.out.println(s1==s3); //true
如上图中的(OID)对象标识符 其中查询的语句在session中会有缓存所以在执行的时候只有两条sql
1,increment 由Hibernate 自动以递增的方式生成标识符,适用代理主键;
2,identity 由底层数据库生成标识符;适用代理主键;
3,sequcence 由Hibernate 根据底层数据库的序列来生成标识符;适用代理主键;
4,hilo Hibernate 根据high/low 算法来生成标识符。适用代理主键
5,native 根据底层数据库对自动生成标识符的支持能力, 来选择identity,sequence 或hilo;适用代理主键;