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

hashcode不一样啊

	@Test
	public void testWithGetCurrentSession() {
		Configuration config = new Configuration().configure();
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
				.applySettings(config.getProperties()).buildServiceRegistry();
		sessionFactory = config.buildSessionFactory(serviceRegistry);
		Session session = sessionFactory.getCurrentSession();
		Transaction transaction1 = session.beginTransaction();
		Students s = new Students(3, "张三", "男", new Date(), "北京");
		session.doWork(new Work() {

			@Override
			public void execute(Connection connection) throws SQLException {
				// TODO Auto-generated method stub
				System.out.println("connection hashcode:"
						+ connection.hashCode());
			}

		});
		session.save(s);
		// session1.close();
		transaction1.commit();

		Session session2 = sessionFactory.getCurrentSession();
		transaction1 = session2.beginTransaction(); // 生成学生对象
		s = new Students(4, "类似", "男", new Date(), "大海");
		session2.doWork(new Work() {

			@Override
			public void execute(Connection connection) throws SQLException {
				// TODO Auto-generated method stub
				System.out.println("connection hashcode:"
						+ connection.hashCode());
			}

		});
		session2.save(s);
		transaction1.commit();

	}


提问者:ONLY14 2016-06-11 10:58

个回答

  • Coder编程
    2016-08-01 15:55:05
    已采纳

    http://img.mukewang.com/579f00010001933012620858.jpg

    我将你的代码运行了一遍,你当中少了我添加的那条 3.获取sessionFactory对象  然后运行结果的hashcode值是相同的。

  • SunsunDay
    2016-07-17 03:36:53

    为什么不同呢?

  • 蓝色梦0
    2016-06-11 15:08:53

    上面的生成的两次session所对应的connection的hashcode是不一样的