hi,
ich hab eine Java-Anwendung mit Hibernate (3) und Spring (3.2.0). Nach einiger Entwicklungszeit ging auf einmal das Löschen aus der Datenbank nicht mehr.
Es wird einfach nichts aus der Datenbank gelöscht. Fehler kommt aber auch nicht.
Bis jetzt habe ich mir mal mit
weitergeholfen, aber eig. dachte ich bräuchte ich dieses .flush, etc. alles nicht, da Hibernate sich da alleine für mich drum kümmert.
Meine config sieht wie folgt aus:
databaseContext.xml:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="
Index of /schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
Index of /schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd">
<!-- hibernate template -->
<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
<!-- property name="cacheQueries" value="true" /-->
</bean>
<!-- Database -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>com.meinPaket.domain.MeineKlasse</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<!-- <prop key="hibernate.hbm2ddl.auto">create</prop> -->
<prop key="hibernate.jdbc.batch_size">0</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.cache.use_second_level_cache">
false
</prop>
<!--prop key="hibernate.cache.use_second_level_cache">true</prop-->
<prop key="hibernate.cache.use_query_cache">false</prop>
<!--prop key="hibernate.cache.use_query_cache">true</prop-->
<prop key="hibernate.cache.provider_class">
net.sf.ehcache.hibernate.SingletonEhCacheProvider
</prop>
</props>
</property>
</bean>
<!-- mit externen Properties ... -->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${db.driverClass}" />
<property name="jdbcUrl" value="${db.jdbcUrl}" />
<property name="user" value="${db.user}" />
<property name="password" value="${db.password}" />
</bean>
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties" />
</bean>
</beans>
[/XML]
transactionContext.xml:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<beans default-init-method="init" default-destroy-method="destroy"
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
Index of /schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
Index of /schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
Index of /schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- deklarative Transaktion -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true" propagation="REQUIRED"/>
<tx:method name="select*" read-only="true" propagation="REQUIRED"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<bean name="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager"/>
</bean>
</beans>
[/XML]
Wo die Files liegen hab ich in der web.xml angegeben:
[XML]
...
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:config/spring/applicationContext.xml
classpath:config/spring/applicationContextJSF.xml
classpath:config/hibernate/databaseContext.xml
classpath:config/hibernate/transactionContext.xml
</param-value>
</context-param>
...
[/XML]
Kann mir vll jemand sagen, was ich an der config falsch gemacht/vergessen habe?
ich hab eine Java-Anwendung mit Hibernate (3) und Spring (3.2.0). Nach einiger Entwicklungszeit ging auf einmal das Löschen aus der Datenbank nicht mehr.
Java:
hibernateTemplate.delete(obj);
Es wird einfach nichts aus der Datenbank gelöscht. Fehler kommt aber auch nicht.
Bis jetzt habe ich mir mal mit
Java:
hibernateTemplate.delete(obj);
hibernateTemplate.flush();
weitergeholfen, aber eig. dachte ich bräuchte ich dieses .flush, etc. alles nicht, da Hibernate sich da alleine für mich drum kümmert.
Meine config sieht wie folgt aus:
databaseContext.xml:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="
Index of /schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
Index of /schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd">
<!-- hibernate template -->
<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
<!-- property name="cacheQueries" value="true" /-->
</bean>
<!-- Database -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>com.meinPaket.domain.MeineKlasse</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<!-- <prop key="hibernate.hbm2ddl.auto">create</prop> -->
<prop key="hibernate.jdbc.batch_size">0</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.cache.use_second_level_cache">
false
</prop>
<!--prop key="hibernate.cache.use_second_level_cache">true</prop-->
<prop key="hibernate.cache.use_query_cache">false</prop>
<!--prop key="hibernate.cache.use_query_cache">true</prop-->
<prop key="hibernate.cache.provider_class">
net.sf.ehcache.hibernate.SingletonEhCacheProvider
</prop>
</props>
</property>
</bean>
<!-- mit externen Properties ... -->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${db.driverClass}" />
<property name="jdbcUrl" value="${db.jdbcUrl}" />
<property name="user" value="${db.user}" />
<property name="password" value="${db.password}" />
</bean>
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties" />
</bean>
</beans>
[/XML]
transactionContext.xml:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<beans default-init-method="init" default-destroy-method="destroy"
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
Index of /schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
Index of /schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
Index of /schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- deklarative Transaktion -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true" propagation="REQUIRED"/>
<tx:method name="select*" read-only="true" propagation="REQUIRED"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<bean name="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager"/>
</bean>
</beans>
[/XML]
Wo die Files liegen hab ich in der web.xml angegeben:
[XML]
...
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:config/spring/applicationContext.xml
classpath:config/spring/applicationContextJSF.xml
classpath:config/hibernate/databaseContext.xml
classpath:config/hibernate/transactionContext.xml
</param-value>
</context-param>
...
[/XML]
Kann mir vll jemand sagen, was ich an der config falsch gemacht/vergessen habe?