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); }
Partager