Bonjour tout le monde,

Voilà, je suis un peu perdu. Lorsque j'essaie de faire un test de récupération de données sur ma base de données de joujou via cette petite classe avec les dernières version d'hibernate et de 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
 
@Transactional(readOnly = true)
public class PersonnesDAOImpl implements PersonnesDAO{
 
    private SessionFactory sessionFactory;
 
 
	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}
 
	public Collection<Personne> getPersonnes() {
		// TODO Auto-generated method stub
		Session session = sessionFactory.getCurrentSession();
        Criteria criteria = session.createCriteria(Personne.class);
		Collection<Personne> listePers = criteria.list();
        session.getTransaction().commit();
		return listePers;
	}
 
}
Voici ce que j'obtiens comme erreur ... snif :'( :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
Struts Problem Report
-------------------------------------------------------------------------------
Struts has detected an unhandled exception:
Messages: 	
com.naialola.models.Metier_$$_javassist_4 cannot be cast to javassist.util.proxy.Proxy
File: 	org/hibernate/proxy/pojo/javassist/JavassistLazyInitializer.java
Line number: 	147
Stacktraces
java.lang.ClassCastException: com.naialola.models.Metier_$$_javassist_4 cannot be cast to javassist.util.proxy.Proxy
...
Pourtant, les fichiers de mapping semblent bon, la base de données et les tables sont bien configurées en innoDB. Je vous mets ci-dessous la classe Personne:
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
 
package com.naialola.models;
 
public class Personne implements java.io.Serializable {
 
	private static final long serialVersionUID = 1L;
	private Long idPersonne;
	private String nom;
	private String prenom;
	private Metier job;
 
 
	public Personne() {
	}
 
	public Personne(Long idPersonne, String nom, String prenom, Metier job) {
		this.idPersonne = idPersonne;
		this.nom = nom;
		this.prenom = prenom;
		this.job = job;
	}
 
	public Long getIdPersonne() {
		return idPersonne;
	}
 
	public void setIdPersonne(Long idPersonne) {
		this.idPersonne = idPersonne;
	}
 
	public String getNom() {
		return nom;
	}
 
	public void setNom(String nom) {
		this.nom = nom;
	}
 
	public String getPrenom() {
		return prenom;
	}
 
	public void setPrenom(String prenom) {
		this.prenom = prenom;
	}
 
	public Metier getJob() {
		return job;
	}
 
	public void setJob(Metier job) {
		this.job = job;
	}	
}
et le petit bout de code de déclaration de la table Personnes au niveau d' hibernate:

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
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.naialola.models.Personne" 
		table="PERSONNES">
        <id name="idPersonne" type="java.lang.Long">
            <column name="IDPERSONNE" />
            <generator class="identity" />
        </id>
        <property name="nom" type="string">
            <column name="NOM" length="15" />
        </property>
        <property name="prenom" type="string">
            <column name="PRENOM" length="15" />
        </property>        
        <many-to-one name="job" class="com.naialola.models.Metier" column="IDMETIER"/>
    </class>
</hibernate-mapping>
Je vous remercie d'avance pour votre aide et vous souhaite à tous une bonne journée.

Cordialement,

Vinou