/ / Java: DBunitils + Spring: Different Hibernate-Dialect - java, jar, dbunit

Java: DBunitils + Spring: Rôzne Hibernate-Dialect - java, spring, dbunit

V súčasnej dobe používam jar na depency injekciu. Hibernate používa pre normálny chod dialektový dialekt, ale chcem používať HSQL na testovanie databázy DBUnitils.

môj Jar-Configuration obsahuje toto:

<!-- Hibernate session factory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="use_outer_join">${hibernate.use_outer_join}</prop>

<prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop>
<prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>
<prop key="hibernate.cache.provider_class">${hibernate.cache.provider}</prop>

<prop key="hibernate.connection.pool_size">10</prop>
<prop key="hibernate.jdbc.batch_size">1000</prop>
<prop key="hibernate.bytecode.use_reflection_optimizer">true</prop>

</props>
</property>
<property name="annotatedClasses">
<list>
<value>de.dbruhn.relations.model.Relation</value>
<value>de.dbruhn.relations.model.RelationData</value>
<value>de.dbruhn.relations.model.RObject</value>
<value>de.dbruhn.relations.model.Type</value>
</list>
</property>

<property name="schemaUpdate" value="${hibernate.schemaUpdate}"/>
</bean>

Polia sa nahradia filtrovaním prostriedkov z maven.

Jarná konfederácia pre DBUnitils obsahuje toto:

<bean id="dataSource" class="org.unitils.database.UnitilsDataSourceFactoryBean"/>
</beans>

a tak prepíše zdroj údajov z mojej konfigurácie spustenia pomocou jednotky UnitilsDataSource.

Problém: Nemôžem spustiť testy pomocou Postgres-Dialect proti HSQL-Test-Database, pretože niektoré príkazy nefungujú. Jediné riešenie, ktoré ma napadlo: Prepínanie zdrojov-filter v maven, ale musím to urobiť ručne (tým, že preukáže "-P TEST" pri každom hovoru maven). Nie je teda možné prepísať režim zimného spánku?

Vďaka!

odpovede:

0 pre odpoveď č. 1

Mali by ste sa pravdepodobne pozrieť na používaniePropertyPlaceHolderConfigurer na jar na zmenu konfigurácie. Týmto spôsobom budete potrebovať iba dodať iný konfiguračný súbor pre rôzne prostredia, jar xml zostane rovnaká.

A môžete načítať konfiguračný súbor ako toto.


4 pre odpoveď č. 2

Zvyčajne nemusíte špecifikovať dialekt navšetko, Hibernate to zistí pri pohľade na základný zdroj údajov. Dialekt musíte špecifikovať iba vtedy, ak chcete prinútiť Hibernáta, aby používal konkrétny.

Vo vašom prípade by ste mali byť schopní úplne odstrániť dialekt a mali by pracovať v postgrese a hsql bez konfigurácie modifikácie.