Comment traduisez-vous Hibernate mappages de classe à un Ressort, le contexte de l'application?
Comment configurer le Hibernate classe mappages de classe org.springframework.orm.hibernate3.LocalSessionFactoryBean dans le Printemps le contexte de l'application? Je veux déplacer le session d'usine classe des mappages de la suite hibernate.cfg.xml
à la correspondante de la session de Printemps de l'usine bean afin que je puisse les éliminer hibernate.cfg.xml
.
Fichier hibernate.cfg.xml
:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- ... -->
<mapping resource="Queries.hbm.xml" />
<mapping class="com.company.app.common.model.Account" />
<mapping class="com.company.app.common.model.AccountCategory" />
<mapping class="com.company.app.common.model.AssetType" />
<mapping class="com.company.app.common.model.Book" />
<mapping class="com.company.app.model.AssetTypeCategory" />
<!-- ... -->
</session-factory>
</hibernate-configuration>
Fichier spring-application-context.xml
:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
<!-- Instead of the above, I want to use the following. Where and
how do I define the class mappings so that I may eliminate
hibernate.cfg.xml? -->
<--
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<value>Queries.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="dialect">org.hibernate.dialect.Oracle10gDialect</prop>
</props>
</property>
-->
</bean>
Je veux éliminer le
Ces annoté les classes d'entité?
Oui, ce sont des classes annotées.
hibernate.cfg.xml
fichier en déplaçant son contenu dans le Printemps contexte de l'application.Ces annoté les classes d'entité?
Oui, ce sont des classes annotées.
OriginalL'auteur Derek Mahar | 2011-03-21
Vous devez vous connecter pour publier un commentaire.
Si vous êtes en utilisant JPA-annoté de classes, vous pouvez utiliser
AnnotationSessionFactoryBean
au lieu deLocalSessionFactoryBean
, et de les injecter directement les classes dans le Printemps bean:Queries.hbm.xml
qui contient certaines des requêtes HQL?s'étend
LocalSessionFactoryBean
, de sorte que vous pouvez toujours utiliser les mêmes propriétés qu'avant, y comprismappingResources
.Excellent! Belle réponse!
OriginalL'auteur skaffman
Comme une légère variation sur skaffman de réponse, j'ai utilisé la propriété
packagesToScan
de classeAnnotationSessionFactoryBean
pour éviter de lister tous les modèles individuels des noms de classe:J'ai appris à propos de cette propriété de l'excellent livre Printemps dans l'Action, la Troisième Édition.
OriginalL'auteur Derek Mahar
J'ai également été confronté à la même question, et cela a fonctionné pour moi -
OriginalL'auteur Sachchidanand Singh