Bonjour tous le monde,
J'ai un projet ou j'utilisais des hbm, je souhaite migrer avec des annotations.
Mais je n'arrive pas a le faire avec une simple table.
Entity
hiberntate
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 @Entity @NamedQuery(name="message.findByUser", query="SELECT m FROM Message m WHERE m.iduser=:id") @Table(name="MESSAGE") public class Message implements Serializable { /** * */ private static final long serialVersionUID = 1L; @Id @GeneratedValue @Column(name = "id", unique = true, nullable = false) private java.lang.Integer _id; private java.lang.Integer _iduser; @Column(name = "audiofile") private java.lang.String _audiofile; @Column(name = "audio") private java.lang.String _audio; @Column(name = "name", nullable = false) private java.lang.String _name; public Message () { } public Message (java.lang.Integer _id) { this.setId(_id); } public Message ( java.lang.Integer _id, java.lang.Integer _iduser, java.lang.String _audiofile, java.lang.String _audio) { this.setId(_id); this.setIduser(_iduser); this.setAudiofile(_audiofile); this.setAudio(_audio); } public java.lang.String getName() { return _name; } public void setName(java.lang.String _name) { this._name = _name; } public java.lang.Integer getId () { return _id; } public void setId (java.lang.Integer _id) { this._id = _id; } @Column(nullable = false) public java.lang.Integer getIduser () { return _iduser; } public void setIduser (java.lang.Integer _iduser) { this._iduser = _iduser; } public java.lang.String getAudiofile () { return _audiofile; } public void setAudiofile (java.lang.String _audiofile) { this._audiofile = _audiofile; } public java.lang.String getAudio () { return _audio; } public void setAudio (java.lang.String _audio) { this._audio = _audio; } }
La factory:
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 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- local connection properties --> <property name="hibernate.connection.url"> jdbc:mysql://localhost:3306/vxmltree <!-- jdbc:mysql://192.168.1.4:3306/vxmltree --> </property> <property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver </property> <!-- <property name="hibernate.connection.username">michael</property> --> <!-- <property name="hibernate.connection.password">wxcQSDaze123</property> --> <property name="hibernate.connection.username">root</property> <property name="hibernatez.sconnection.password"></property> <!-- property name="hibernate.connection.pool_size"></property --> <!-- dialect for DB2 --> <property name="dialect"> <!-- org.hibernate.dialect.HSQLDialect --> org.hibernate.dialect.DB2Dialect </property> <property name="hibernate.show_sql">true</property> <property name="hibernate.use_outer_join">true</property> <property name="hibernate.jndi.class"> org.hibernate.service.jndi.internet.JndiService </property> <property name="hibernate.current_session_context_class">thread</property><!-- managed --> <property name="hibernate.connection.provider_class"> org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider </property> <property name="hibernate.c3p0.min_size">5</property> <property name="hibernate.c3p0.max_size">20</property> <property name="hibernate.c3p0.timeout">300</property> <property name="hibernate.c3p0.preferredTestQuery">SELECT 1</property> <property name="hibernate.c3p0.max_statements">0</property> <mapping class="fr.iconsultants.ibox.server.hibernate.entities.Message" /> </session-factory> </hibernate-configuration>
J'ai bien fait attention au getteur d'iduser, je tiens a signaler que même si je requête sur name, jai le même erreur.
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 public class HibernateFactory { private static final SessionFactory sessionFactory; static { try { Configuration configuration = new Configuration(); configuration.configure("hibernate.cfg.xml"); ServiceRegistryBuilder serviceRegistryBuilder = new ServiceRegistryBuilder().applySettings(configuration .getProperties()); sessionFactory = configuration .buildSessionFactory(serviceRegistryBuilder.buildServiceRegistry()); }catch(HibernateException ex){ throw new RuntimeException( ex.getMessage(), ex); } } public static final ThreadLocal session = new ThreadLocal(); public static Session currentSession(){ Session s = (Session) session.get(); if (s == null){ s = sessionFactory.openSession(); session.set(s); } return s; }
Merci d'avance et bonne journée
Partager