Bonjour, pour mon 1er message sur ce forum : un petit problème.
Voilà le contexte, j'ai une classe POJO que je veux persister en B.D. via Hibernate. Seulement je veux que tous les champs String de ma classe soit cryptés.
Le but du jeu est d'utiliser la POA (programmation orientée aspect) pour crypter/decrypter mes données. Donc à chaque appel de mes setters de ma classe POJO, mon aspect se charge de crypter/décrypter les données.
par exemple, en faisant :
mon aspect declenche automatiquement le morceau de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part monObjet.setAttributCrypte(DataCryptee);
Si vous me suivez toujours tant mieux. Donc dans mon esprit, Hibernate, lorsqu'il créer un objet suite à une requête, je pensais qu'il créait un objet vide et qu'il le remplissait avec les champs de la base de données (donc avec les setters). L'objet créé devrait alors contenir les attributs cryptés, mais aussi, grâce à mon aspect, les attributs décryptés... en théorie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part monObjet.setAttribut(decryptage(DataCryptee));
Mais dans la réalité, l'objet issue de la base de données ne contient que les données non cryptées, comme si Hibernate ne se souciait pas de mon aspect. De plus, après avoir executé un mode debug mon programme, j'ai compris qu'hibernate n'utilisait pas les setters pour "remplir" un objet créé a partir de la BD. Donc, mon aspect, ben, sans les setters, il sert à rien !!!
Qui peut me dire comment Hibernate construit ses objets à partir de la base ? qui sait comment traiter les données lors du "remplissage" de l'objet créé ? Qui sait si on peut forcer Hibernate à utiliser les accesseurs de ma classe ?![]()
Merci d'avance !
Partager