Newbie d'Hibernate, j'ai un problème d'insertion. Le champ clé (idConsigne) et un autre (mainCouranteIdMain) veulent bien s'insérer mais pas les deux autres.
_Soit le mapping suivant :
_Soit le Bean correspondant, qui a donc les champs :
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 <hibernate-mapping package="asp"> <class name="ConsignesFormulaireBean" table="consigne" > <meta attribute="sync-DAO">false</meta> <id name="idConsigne" type="java.lang.Long"> <column name="id_consigne" not-null="true" length="32"/> <generator class="increment" /> </id> <property name="typeConsigne" column="type_consigne" type="java.lang.Byte" not-null="false" length="8" /> <property name="intitule" column="intitule_consigne" type="java.lang.String" not-null="false" length="64" /> <property name="mainCouranteIdMain" column="main_courante_id_main" type="java.lang.Long" not-null="false" length="32" />
byte typeConsigne;
String intitulé
long mainCouranteIdMain
avec bien sûr les accesseurs qui vont bien (merci pour eux !).
_Soit la classe de test suivante :
_Enfin, soit la table 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 public static void main(String[] args) throws HibernateException { byte un=1; byte trois=3; Session session = HibernateUtil.currentSession(); Transaction tx = session.beginTransaction(); ConsignesFormulaireBean consigne = new ConsignesFormulaireBean(); consigne.setIntitule("Faire gaffe !"); consigne.setTypeConsigne(trois); consigne.setMainCouranteIdMain(1L); System.out.println(consigne.getTypeConsigne()); session.save(consigne); consigne = new ConsignesFormulaireBean(); consigne.setIntitule("Rien de spé"); consigne.setTypeConsigne(un); consigne.setMainCouranteIdMain(2L); session.save(consigne); tx.commit(); HibernateUtil.closeSession(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <table> <column java.sql.Types="-5" name="id_consigne" nullable="false" position="1" primaryKey="false" size="32" type="bigint"> <defaultValue>0</defaultValue> </column> <column java.sql.Types="4" keyOrder="0" name="type_consigne" nullable="false" position="2" primaryKey="false" size="9" type="mediumint"> <defaultValue>0</defaultValue> </column> <column java.sql.Types="12" keyOrder="0" name="intitule_consigne" nullable="false" position="3" primaryKey="false" size="255" type="tinytext"> <defaultValue /> </column> <column java.sql.Types="-5" keyOrder="0" name="main_courante_id_main" nullable="true" position="4" primaryKey="false" size="32" type="bigint" /> </table>
Mes accesseurs fonctionnent, le println() me le prouve. J'ai l'impression qu'il s'agit d'un problème de types incompatibles entre mes tables et le code Java, mais je ne vois pas quoi faire.
Merci d'avance !
Partager