IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

[HSQLDB] pas de persistance avec BasicDataSource [Data]


Sujet :

Spring Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 20
    Points
    20
    Par défaut [HSQLDB] pas de persistance avec BasicDataSource
    Bonjour à tous,

    J'ai un problème de persistance avec HSQLDB en mode standalone. J'ai créé un programme qui écrit des données dans la base qui utilise Spring, Hibernate et HsqlDB. Mais lorsque l'application termine son exécution, il n'y a rien dans la base de donnée. malgré le fait que j'ai bien ";shutdown=true" à l'url de connexion à la base de données.

    Après plusieurs recherches sur le net, j'ai essayé de remplacer la classe "org.apache.commons.dbcp.BasicDataSource" utilisée par la DataSource par "org.springframework.jdbc.datasource.DriverManagerDataSource". Et dans ce cas les données sont bien persistées. Par contre, il s'avère que ce ne soit pas une bonne solution car DriverManagerDataSource n'est pas un connection pool (cf : http://forum.springsource.org/archiv...p/t-39000.html)

    Pour que ce soit plus clair, voici le fichier de configuration Spring :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
     
    	<bean id="propertyConfigurer"
    		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    		<property name="location">
    			<value>spring-hibernate.properties</value>
    		</property>
    		<property name="ignoreUnresolvablePlaceholders" value="true" />
    		<property name="placeholderPrefix" value="${hibernate." />
    	</bean>
     
    	<!-- DataSource Definition -->
    	<bean id="exampleDataSource" class="org.apache.commons.dbcp.BasicDataSource">
    		<property name="driverClassName" value="${hibernate.driverClassName}" />
    		<property name="url" value="${hibernate.url}" />
    		<property name="username" value="${hibernate.username}" />
    		<property name="password" value="${hibernate.password}" />
    	</bean>
     
    	<!-- Database Property -->
    	<bean id="exampleHibernateProperties"
    		class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    		<property name="properties">
    			<props>
    				<prop key="hibernate.dialect">${hibernate.dialect}</prop>
    				<prop key="hibernate.show.sql">${hibernate.show.sql}</prop>
    				<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
    			</props>
    		</property>
    	</bean>
     
    	<!-- Hibernate SessionFactory Definition -->
    	<bean id="exampleSessionFactory"
    		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<property name="dataSource">
    			<ref bean="exampleDataSource" />
    		</property>
    		<property name="hibernateProperties">
    			<ref bean="exampleHibernateProperties" />
    		</property>
    		<property name="mappingResources">
    			<list>
    				<value>org/sebbo/hsqldbTest/domain/user/User.hbm.xml</value>
    			</list>
    		</property>
    	</bean>
     
    	<!-- Spring Data Access Exception Translator Defintion -->
    	<bean id="jdbcExceptionTranslator"
    		class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator">
    		<property name="dataSource">
    			<ref bean="exampleDataSource" />
    		</property>
    	</bean>
     
    	<!-- Hibernate Template Defintion -->
    	<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
    		<property name="sessionFactory">
    			<ref bean="exampleSessionFactory" />
    		</property>
    		<property name="jdbcExceptionTranslator">
    			<ref bean="jdbcExceptionTranslator" />
    		</property>
    	</bean>
     
    	<!-- Hibernate Transaction Manager Definition -->
    	<bean id="transactionManager"
    		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    		<property name="sessionFactory">
    			<ref local="exampleSessionFactory" />
    		</property>
    	</bean>
     
    	<!--
    		================ Start of DAO DEFINITIONS ================
    	-->
    	<!-- USER DAO Definition: Hibernate implementation -->
    	<bean id="userDao" class="org.sebbo.hsqldbTest.domain.dao.impl.UserDaoImpl">
    		<property name="hibernateTemplate">
    			<ref bean="hibernateTemplate" />
    		</property>
    	</bean>
     
    	<!-- Transactional proxy for the TODO Service -->
    	<bean id="toDoService"
    		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    		<property name="transactionManager">
    			<ref local="transactionManager" />
    		</property>
    		<property name="target">
    			<ref local="userDao" />
    		</property>
    		<property name="transactionAttributes">
    			<props>
    				<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
    				<prop key="save*">PROPAGATION_REQUIRED</prop>
    				<prop key="update*">PROPAGATION_REQUIRED</prop>
    				<prop key="delete*">PROPAGATION_REQUIRED</prop>
    			</props>
    		</property>
    	</bean>
    </beans>
    Est-ce que vous avez une idée pour corriger ce problème?

    Merci d'avance pour votre aide.

    Sebbo

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 20
    Points
    20
    Par défaut
    Bonjour à tous,

    J'ai pour finir trouvé la solution.

    Il faut effectuer deux opérations. La première est d'ajouter à la datasource La seconde est d'ajouter juste avant la fin de l'application un appel à la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    beanFactory.destroySingletons
    Afin de s'assurer que la méthode close() de la datasource soit bien appelée.

    J'espère que ça sera utile à d'autre.

    Sebbo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/05/2009, 14h02
  2. persistance avec JBoss et HSQLDB
    Par cybernatus dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 27/07/2006, 10h49
  3. Persistence avec JacORB
    Par dam21 dans le forum CORBA
    Réponses: 8
    Dernier message: 28/04/2005, 10h55
  4. [Firebird] on ne peux pas l'exploiter avec Delphi 2005 ??
    Par Harry dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/04/2005, 11h40
  5. [GifDecoder] marche pas dans applet avec IE
    Par formentor dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2003, 10h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo