Bonjour à tous,

première expérience avec hibernate.

Je retourne une liste d'Objets, via createQuery().list(), que je lance dans une boucle pour afficher le nom de chaque employé. Vraiment l'exercice basique.

Il me retourne un NullPointerException, et ensuite il m'affiche une liste d'employés, mais pas la liste complète, et les noms des employés ne concordent pas. Plusieurs fois le même nom, alors que le nom est unique dans ma table.

Voici ma classe:

Employee

Code java : 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
package be.ditconsulting.domain;
 
import java.util.Date;
 
public class Employee {
 
	private long empNo;
	private String employeeName;
	private String jobName;
	private int managerId;
	private Date hiredate;
	private Float salary;
	private Float commission;
 
 
	public long getEmpNo() {
		return empNo;
	}
	public void setEmpNo(long empNo) {
		this.empNo = empNo;
	}
	public int getManagerId() {
		return managerId;
	}
	public void setManagerId(int managerId) {
		this.managerId = managerId;
	}
	public Date getHiredate() {
		return hiredate;
	}
	public void setHiredate(Date hiredate) {
		this.hiredate = hiredate;
	}
	public Float getSalary() {
		return salary;
	}
	public void setSalary(Float salary) {
		this.salary = salary;
	}
	public Float getCommission() {
		return commission;
	}
	public void setCommission(Float commission) {
		this.commission = commission;
	}
	public String getEmployeeName() {
		return employeeName;
	}
	public void setEmployeeName(String employeeName) {
		this.employeeName = employeeName;
	}
	public String getJobName() {
		return jobName;
	}
	public void setJobName(String jobName) {
		this.jobName = jobName;
	}
}

Voici mon fichier de config hibernate.cfg.xml

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
		"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="hibernate.connection.password">tiger</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@10.1.1.49:1521:epssdev</property>
        <property name="hibernate.connection.username">scott</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <mapping resource="be/ditconsulting/domain/Employee.hbm.xml"/>
        <property name="show_sql">true</property>
    </session-factory>
</hibernate-configuration>

et voici le fichier de mapping

Code xml : 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
<?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 02-d?c.-2011 9:03:44 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="be.ditconsulting.domain.Employee" table="EMP">
        <id name="managerId" type="int">
            <column name="MGR" />
            <generator class="assigned" />
        </id>
        <property name="empNo" type="long">
            <column name="EMPNO" />
        </property>
        <property name="employeeName" type="java.lang.String">
            <column name="ENAME" />
        </property>
        <property name="jobName" type="java.lang.String">
            <column name="JOB" />
        </property>
        <property name="hiredate" type="java.util.Date">
            <column name="HIREDATE" />
        </property>
        <property name="salary" type="float">
            <column name="SAL" />
        </property>
        <property name="commission" type="float">
            <column name="COMM" />
        </property>
    </class>
</hibernate-mapping>

Et voici le log

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
16 [main] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.5.6-Final
32 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.6-Final
32 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
47 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
47 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
188 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
188 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: be/ditconsulting/domain/hibernate.cfg.xml
188 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: be/ditconsulting/domain/hibernate.cfg.xml
282 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : be/ditconsulting/domain/Employee.hbm.xml
328 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
344 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
407 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: be.ditconsulting.domain.Employee -> EMP
422 [main] INFO org.hibernate.cfg.AnnotationConfiguration - Hibernate Validator not found: ignoring
500 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
500 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20
500 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
500 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: oracle.jdbc.driver.OracleDriver at URL: jdbc:oracle:thin:@10.1.1.49:1521:epssdev
500 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=scott, password=****}
844 [main] INFO org.hibernate.cfg.SettingsFactory - RDBMS: Oracle, version: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
844 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC driver: Oracle JDBC driver, version: 10.1.0.3.0
891 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.Oracle10gDialect
891 [main] INFO org.hibernate.engine.jdbc.JdbcSupportLoader - Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
891 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)
907 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
907 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15
907 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): disabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
907 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
907 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
907 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
907 [main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
907 [main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
907 [main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
907 [main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
907 [main] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): enabled
953 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
1188 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
Exception in thread "main" Number of employees: 14
java.lang.NullPointerException
	at be.ditconsulting.client.MainTest.main(MainTest.java:28)
SMITH
ALLEN
ALLEN
JONES
ALLEN
JONES
JONES
SCOTT
Voilà, si quelqu'un a une idée, elle est la bienvenue.

Merci d'avance pour vos réponses.