hibernate配置hibernate-cfg.xml配置中在sessionFactory加不加名字的差别

hibernate配置hibernate-cfg.xml配置中在sessionFactory加不加名字的区别
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory name="foo">
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql:///hibernate</property>
		<property name="connection.username">root</property>
		<property name="connection.password">root</property>
		<property name="hbm2ddl.auto">create</property>
		<property name="show_sql">true</property>
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		<mapping resource="cn/hibernate/model/SysUser.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

 注意:加上name会引起下面的异常

警告: Could not bind factory to JNDI
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
	at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
	at javax.naming.InitialContext.getNameParser(InitialContext.java:480)
	at org.hibernate.util.NamingHelper.bind(NamingHelper.java:52)
	at org.hibernate.impl.SessionFactoryObjectFactory.addInstance(SessionFactoryObjectFactory.java:90)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:306)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
	at cn.hibernate.Utils.HibernateUtils.<clinit>(HibernateUtils.java:13)
	at cn.hibernate.dao.SysUserDao.<init>(SysUserDao.java:10)
	at cn.hibernate.text.UserTest.main(UserTest.java:15)
2014-3-7 13:50:29 org.hibernate.tool.hbm2ddl.SchemaExport execute
信息: Running hbm2ddl schema export

 解决办法就是去掉name=“foo”属性,因为有了name属性hibernate会试图把这个sessionfacotry注册到jndi中去。