Bonjour,

Voila j'ai table en base qui s'appelle alertelog, ,d'un point de vu métier il faut que le mapping reflete une vision avec plusieurs tables. J'ai mis du coup ceci en place :

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
 
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 18 juin 2010 14:23:32 by Hibernate Tools 3.3.0.GA -->
<hibernate-mapping>
    <class name="i2.application.bean.AlerteLog" table="r_alerte_log" dynamic-insert="false" dynamic-update="false" >
 
        <id name="idAlertelog" type="int">
            <column name="id_alertelog" />
            <generator class="sequence">
				<param name="sequence">seq_alerte_log</param>
			</generator>
        </id>
 
		<discriminator column="id_fichierlog" type="char"/>
 
       <!--   <property name="idFichierlog" type="char">
            <column name="id_fichierlog" length="1" not-null="true" />
        </property> -->
        <property name="idEnreglog" type="int">
            <column name="id_enreglog" not-null="true" />
        </property>
        <property name="typeAlertelog" type="char">
            <column name="type_alertelog" length="1" not-null="true" />
        </property>
        <property name="dateAlertelog" type="date">
            <column name="date_alertelog" length="13" not-null="true" />
        </property>
        <property name="dateLeveealerte" type="date">
            <column name="date_leveealerte" length="13" not-null="true" />
        </property>
        <property name="depAlertelog" type="string">
            <column name="dep_alertelog" length="3" not-null="true" />
        </property>
        <property name="motifAlertelog" type="string">
            <column name="motif_alertelog" length="50" />
        </property>
 
     	<subclass entity-name="AlerteLogEns" name="i2.application.rafael.bean.AlerteLog" discriminator-value="1" dynamic-insert="false" dynamic-update="false">
        </subclass>
		<subclass entity-name="AlerteLogEts" name="i2.application.rafael.bean.AlerteLog" discriminator-value="2" dynamic-insert="false" dynamic-update="false">
        </subclass>
		<subclass entity-name="AlerteLogCdf" name="i2.application.rafael.bean.AlerteLog" discriminator-value="3">
        </subclass>
        <subclass entity-name="AlerteLogAsso" name="i2.application.rafael.bean.AlerteLog" discriminator-value="4">
		</subclass>         
        <subclass entity-name="AlerteLogAni" name="i2.application.rafael.bean.AlerteLog" discriminator-value="5">
        </subclass>          
        <subclass entity-name="AlerteLogCpap" name="i2.application.rafael.bean.AlerteLog" discriminator-value="6">
        </subclass>  
 
    </class>
</hibernate-mapping>

le soucis c'est quand je lance le JUnit de ma classe de test de mon DAO

j'obtiens l'erreur suivante :

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
 
 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cAlerteDao' defined in file [\webApp\dao\target\test-classes\applicationContextTest.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [\webApp\dao\target\classes\applicationContextDao.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: Could not format discriminator value to SQL string
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1244)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1008)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:470)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:217)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)
	at org.springframework.test.AbstractSingleSpringContextTests.createApplicationContext(AbstractSingleSpringContextTests.java:243)
	at org.springframework.test.AbstractSingleSpringContextTests.loadContextLocations(AbstractSingleSpringContextTests.java:212)
	at org.springframework.test.AbstractSingleSpringContextTests.loadContext(AbstractSingleSpringContextTests.java:187)
	at org.springframework.test.AbstractSpringContextTests.getContext(AbstractSpringContextTests.java:140)
	at org.springframework.test.AbstractSingleSpringContextTests.setUp(AbstractSingleSpringContextTests.java:100)
	at junit.framework.TestCase.runBare(TestCase.java:125)
	at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [\webApp\dao\target\classes\applicationContextDao.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: Could not format discriminator value to SQL string
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1336)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:471)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:217)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269)
	... 34 more
Caused by: org.hibernate.MappingException: Could not format discriminator value to SQL string
	at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:329)
	at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:267)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:816)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:734)
	at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1367)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1333)
	... 44 more
Caused by: org.hibernate.MappingException: multiple or zero characters found parsing string
	at org.hibernate.type.CharacterType.stringToObject(CharacterType.java:78)
	at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:322)
	... 52 more

le hic c'est que je suppose que ca vient de mon mapping car des que j’enlève le discriminator et les subclass, le JUnit fonctionne. Je vois pas où est mon erreur dans le mapping.

Merci de votre aide =)