问答详情
源自:2-6 session详解(下)

为什么用getCurrentSession,但我的hashCode是不同的


//获得配置对象
Configuration config = new Configuration().configure();
//获得服务注册对象
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
//获得sessionFactory对象
SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry);
//创建session对象
Session session1 = sessionFactory.getCurrentSession();
//开启事务
Transaction transaction = session1.beginTransaction();
//生成一个学生对象
Student s = new Student(1,"张","nan",new Date(),"北京");
session1.doWork(new Work(){

@Override
public void execute(Connection connection) throws SQLException {
System.out.println("getCurrentSession1 connection hashCode" + connection.hashCode());
}

});
session1.save(s);
//session1.close();
transaction.commit();

Session session2 = sessionFactory.getCurrentSession();
transaction = session2.beginTransaction();
s = new Student(2,"张34","男",new Date(),"上海");
session2.doWork(new Work(){

@Override
public void execute(Connection connection) throws SQLException {
System.out.println("getCurrentSession2 connection hashCode" + connection.hashCode());
}
});
session2.save(s);
transaction.commit();

这里是结果:

getCurrentSession1 connection hashCode32089354

Hibernate: 

    insert 

    into

        hibernate.STUDENT

        (SNAME, GENDER, BIRTHDAY, ADDRESS, SID) 

    values

        (?, ?, ?, ?, ?)

getCurrentSession2 connection hashCode22794654

Hibernate: 

    insert 

    into

        hibernate.STUDENT

        (SNAME, GENDER, BIRTHDAY, ADDRESS, SID) 

    values

        (?, ?, ?, ?, ?)


提问者:_神人A 2016-08-05 00:08

个回答

  • 晴颜
    2017-02-22 22:16:31

    
    getCurrentSession1 connection hashCode1648001170
    Hibernate: 
        insert 
        into
            STUDENTS
            (NAME, GENDER, BIRTHDAY, ADDRESS, SID) 
        values
            (?, ?, ?, ?, ?)
    getCurrentSession2 connection hashCode1648001170
    Hibernate: 
        insert 
        into
            STUDENTS
            (NAME, GENDER, BIRTHDAY, ADDRESS, SID) 
        values
            (?, ?, ?, ?, ?)

    我试了一下你的代码,上面是运行结果,是一样的

  • Queen丶Star
    2016-08-16 17:24:06

    你设置property那里了吗?

  • qq_昼绽_0
    2016-08-05 15:32:01

    很惊奇,没错啊,我想看一下项目文件