Bonjour,

Je suis actuellement sur une fonctionnalité dont le but est de charger dans une base de données ORACLE un fichier excel lu depuis JAVA.

Le fichier est lu via l'API POI :

* Lecture du fichier et des cellules
* Comparaison d'une cellule lue avec des données en base via Hibernate
* Si l'on retrouve le libellé lu dans le fichier dans la base on fait une mise à jour en base de données

Pour simplifier, je passe la variable "doc" à la fonction "findAllByDocIdClient" mais cette fonction ne donne aucune ligne.
Je pense qu'il y a clairement un problème d'encodage et de ce fait nous avons rajouté la fonction "filterString" mais la fonction "findAllByDocIdClient" ne me renvoie aucune ligne.
Pourtant, je passe : doc="Ayants*droit*économiques"
Et en base ce document existe bien !!
Merci pour votre aide.

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
 
public List findAllByDocIdClient(String doc, Long idClient){
       List result = null;
          Session session = sessionFactory.getCurrentSession();
          try {
 
              session.beginTransaction();
              result = session.createCriteria(Kyc.class)
               .add(Restrictions.eq("client.CIdClient",idClient))
               .add(Restrictions.like("LDocument",filterString(doc)))               
               .list();                                           
 
          } catch (HibernateException he) {
               log.error("ERROR ----------- findAllByDocIdClient");
               throw he;
          }finally{
               session.getTransaction().commit();
               HibernateUtil.closeSession(session);
               return result;
          }
    }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
private String filterString (String valeur){
         byte[] temp = valeur.getBytes();
         for(int i=0;i<temp.length;i++){
             if (temp[i] == -96){
                 temp[i] = (byte)' ';
             }             
         }
         return new String(temp);
     }