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
Voilà, si quelqu'un a une idée, elle est la bienvenue.
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
Merci d'avance pour vos réponses.
Partager