HibernateTemplate löscht nicht ohne flush()

Dieses Thema HibernateTemplate löscht nicht ohne flush() im Forum "Data Tier" wurde erstellt von mariechen11, 27. Mai 2014.

Thema: HibernateTemplate löscht nicht ohne flush() hi, ich hab eine Java-Anwendung mit Hibernate (3) und Spring (3.2.0). Nach einiger Entwicklungszeit ging auf...

  1. 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.

    Code (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

    Code (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?
     
  2. Vielleicht helfen dir diese Java-Grundlagen weiter --> *Klick*