如题!谢谢!

解决方案 »

  1.   

     请问上面的问题有没有会的?听说CSDN上高手多!高手都到哪里去了????
      

  2.   

    1、方便开发——隐藏了底层开发的一些细节,可以由应用服务器(如Weblogic、Websphare、apache)自动创建和管理SessionFactory对象。
    2、使Web应用程序易于布暑和移植。
      

  3.   

    JNDI是J2EE规范中的一项重要技术!
      

  4.   

    既然要绑定,还要个Factory做什么?
      

  5.   

    使用MYeclipse SPRING+HIBERNATE,用SPRING的Session自动取代HBERNATE的 设置HIBERNATE不产生SessionFactory
    然后你是高手就自己看他的代码去。。我不懂
      

  6.   

    3.8.2. JNDI-bound SessionFactory
    A JNDI bound Hibernate SessionFactory can simplify the lookup of the factory and the creation of new Sessions. Note that this is not related to a JNDI bound Datasource, both simply use the same registry! If you wish to have the SessionFactory bound to a JNDI namespace, specify a name (eg. java:hibernate/SessionFactory) using the property hibernate.session_factory_name. If this property is omitted, the SessionFactory will not be bound to JNDI. (This is especially useful in environments with a read-only JNDI default implementation, e.g. Tomcat.) When binding the SessionFactory to JNDI, Hibernate will use the values of hibernate.jndi.url, hibernate.jndi.class to instantiate an initial context. If they are not specified, the default InitialContext will be used. Hibernate will automatically place the SessionFactory in JNDI after you call cfg.buildSessionFactory(). This means you will at least have this call in some startup code (or utility class) in your application, unless you use JMX deployment with the HibernateService (discussed later). If you use a JNDI SessionFactory, an EJB or any other class may obtain the SessionFactory using a JNDI lookup. We recommend that you bind the SessionFactory to JNDI in a managend environment and use a static singleton otherwise. To shield your application code from these details, we also recommend to hide the actual lookup code for a SessionFactory in a helper class, such as HibernateUtil.getSessionFactory(). Note that such a class is also a convenient way to startup Hibernate—see chapter 1. 这是官方文档的一小节,里面说为什么要这样做!这样做的好处!这是官方所推荐的!
      

  7.   

    3.8.2.  JNDI绑定的SessionFactory 
    与JNDI绑定的Hibernate的SessionFactory能简化工厂的查询,简化创建新的Session. 需要注意的是这与JNDI绑定Datasource没有关系, 它们只是恰巧用了相同的注册表! 如果你希望将SessionFactory绑定到一个JNDI的名字空间, 用属性hibernate.session_factory_name指定一个名字(如, java:hibernate/SessionFactory). 如果不设置这个属性, SessionFactory将不会被绑定到JNDI中. (在以只读JNDI为默认实现的环境中,这个设置尤其有用, 如Tomcat.) 在将SessionFactory绑定至JNDI时, Hibernate将使用hibernate.jndi.url, 和hibernate.jndi.class的值来实例化初始环境(initial context). 如果它们没有被指定, 将使用默认的InitialContext. 在你调用cfg.buildSessionFactory()后, Hibernate会自动将SessionFactory注册到JNDI. 这意味这你至少需要在你应用程序的启动代码(或工具类)中完成这个调用, 除非你使用HibernateService来做JMX部署 (见后面讨论). 假若你使用JNDI SessionFactory,EJB或者任何其它类都可以从JNDI中找到此SessionFactory。 我们建议,在受管理的环境中,把SessionFactory绑定到JNDI,在其它情况下,使用一个static(静态的)singleton。为了在你的应用程序代码中隐藏这些细节,我们还建议你用一个helper类把实际查找SessionFactory的代码隐藏起来,比如HibernateUtil.getSessionFactory()。注意,这个类也就可以方便地启动Hibernate,参见第一章。 中文翻译!
      

  8.   

    他俩绑定啥????sessionfactory就是要全局用的,session只是线程用的,你可以试试threadlocal来保存session.