La SessionFactory es aquella que se encarga de decir al sistema, donde se encuentran todos los ficheros de mapeo de Hibernate, el dialecto de Hibernate a utilizar (varía según el gestor de base de datos, pero no para nosotros, sino para el sistema, nosotros siempre utilizamos HQL), y también va a ser la encargada de asociar los DAO dentro de las Fachadas. Incluye lo siguiente:
<!– ======= Definition of the SessionFactory =======–>
<bean id=”factory“ class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean“>
<property name=”mappingResources“>
<list>
<value>gz/cyberbrain/cyberhotel/model/room/to/roomTo.hbm.xml</value>
<value>gz/cyberbrain/cyberhotel/model/client/to/clientTo.hbm.xml</value>
<value>gz/cyberbrain/cyberhotel/model/address/to/addressTo.hbm.xml</value>
…</list>
</property>
<property name=”hibernateProperties“>
<props><prop key=”hibernate.dialect“>org.hibernate.dialect.SQLServerDialect</prop>
<prop key=”hibernate.show_sql“>false</prop></props>
</property>
<property name=”dataSource“>
<ref bean=”dataSource“/>
</property>
</bean>
<!– Transaction manager for a single Hibernate SessionFactory (alternative to JTA) –>
<bean id=”transactionManager“ class=”org.springframework.orm.hibernate3.HibernateTransactionManager“>
<property name=”sessionFactory“
<ref local=”factory“/>
</property></bean>
factory: Aquí se indican en una lista todos los ficheros de mapeo con su ruta completa desde la raíz. Se indica cual es la clase de Spring que realiza el trabajo de la factoría, para saber cual utilizar es necesario acudir a la documentación de Spring.
hibernateProperties: Tiene dos propiedades a destacar que son hibernate.dialect el dialecto que usará Hibernate para comunicarse con la base de datos, viene en la documentación de hibernate, y la propiedad hibernate.show_sql que si ponemos a true nos muestra por consola todas las sentencias SQL que hibernate ejecutó sobre la base de datos, es muy útil a la hora de depurar.
dataSource: aquí indicamos el datasource del que hablamos en el apartado anterior.
transactionManager: Se indica la clase que actúa como manejador de transacciones para Spring sobre Hibernate, es necesario mirar en la documentación. En la propiedad sessionManager indicamos la factoría que definimos antes.
05/09/2009 a las 11:08 pm |
buena aportacion