J’espère qu’il y a au moins une personne qui s’y connait avec Hibernate ou qui saurait m’indiquer quoi chercher dans google.
J’ai deux tables, une du type A et l’autre B.
la table A contient les 4 entrées suivantes:
w d’identifiant 1
x d’identifiant 2
y d’identifiant 4
z d’identifiant 8
Maintenant, le truc chiant:
la table B contient des entrées avec une colonne ‹ type A associés › avec des valeurs comme :
1 : facile, le type A associé est w.
3 : les types A associés sont w et x
15: tous les types sont associés
bref, je vois pas comment je dois annoter ce champ pour faire des objets A & B en POJOs annotés… Une idée? Sinon, un nom que je pourrais chercher sur google pour m’eclairer?
Pour le moment j’utilise hibernate via l’API de persistence java & les annotations, j’espere que c’est faisable…
EDIT: ca j’ai trouvé.
Ensuite il va falloir que j’arrive a retrouver les combinaisons via un algo tiens ^^’
Ce serait peut être pas mal avec un exemple un peu plus parlant. J’ai même pas compris ce que tu voulais faire avec tes deux tables. Ce serait pas juste un @ManyToMany entre les deux tables?
Ah merde, my bad, j’avais pas vu que tu parlais de CHMOD dans le titre de ton topic. Sry :). Ceci dit je comprends toujours pas ce que tu veux faire… hu hu
Le chmod a une valeur xxx. Chacun de ces chiffres ‘x’ est une somme de droits:
1 lecture
2 écriture
4 exécution.
111= tout le monde a un droit de lecture
222 = tout le monde a le droit a l’écriture
333 = tout le monde a le droit a l’écriture & lecture
etc…
Ma table B contient des entrées avec une colonne ‘éléments A associés’. Normalement, ça devrait être un identifiant simple d’un seul élément A. Mais la, tous les identifiants des éléments A associés sont sommés, comme sur un CHMOD!
exemples:
1 : facile, le type A associé est w.
3 = 2+1 : les types A associés sont w et x.
15 = 1 + 2 + 4 + 8 : tous les types A sont associés.
A moins que je n’ai pas compris, il y a deux manières de résoudre le problème pour moi, en tout cas en SQL,
Ou bien écrire en algèbre booléenne, avec des OR et des AND, la relation entre les identifiants et les formes d’association.
Ou bien créer une table d’association n-n entre tes identifiants de la table A et tes autorisations “primaires” (lecture, écriture, exécution) de la table B.
Ouais donc dans ta table B, au final tu as un int (compris entre 0 et 15 (d’ailleurs c’est quoi ton droit en 8?)) et ce que tu voudrais c’est que dans ton POJO, quand tu le charges, hop tu te retrouves avec une collection de droits.
Alors comment avec Hibernate/JPA tu vas arriver à mapper un int sur une collection de droits, ça j’ai un peu de mal à voir…
Pour moi tu vas devoir faire du code qui va faire l’interprétation du chmod sommé (et mis sur 3 chiffres!) dans un getter (et dans les setter & adder de droits). Et continuer à mapper ton int bêtement sur ta colonne pour garder le schéma de BDD.
Au final : pas de lien entre table A et table B. La table A te sert uniquement de référence pour ton algo qui décompose le chmod et te retourne une liste de droits. Idem pour les setters, il faut que si tu rajoutes le droit de lecture au groupe tu saches que tu dois ajouter 1 aux dizaines, etc.