Voila, j'ai besoin de definir un acces par login/pass à mon application, et je ne sais pas trop quel manière de faire serait le mieux avec Hibernate :
Pour le moment j'ai fait une table User :
Une table authentification :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 CREATE TABLE utilisateurs ( id int8 NOT NULL, nom varchar(20) NOT NULL, prenom varchar(20) NOT NULL, societe varchar(20), quota_aut int8 NOT NULL, quota_cour int8, adresse varchar(100) NOT NULL, cp int8 NOT NULL, ville varchar(30) NOT NULL, tel varchar(10) NOT NULL, CONSTRAINT utilisateurs_pkey PRIMARY KEY (id) )
j'ai crée un objet authentification :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE TABLE authentification ( id int8 NOT NULL, "login" varchar(20) NOT NULL, pass varchar(32) NOT NULL, "user" int8, CONSTRAINT authentification_pkey PRIMARY KEY (id), CONSTRAINT authentification_user_fkey FOREIGN KEY ("user") REFERENCES utilisateurs (id) MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE )
j'ai mappé l'user et l'authentification comme suit (one-to-one bidirectionnelle) :
coté User:
coté authentification :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <many-to-one name="authentification" column="user" unique="true" not-null="true"/>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <one-to-one name="user" cascade="save-update,delete" />
Or mon code me paraît bancale, ais-je eu tord de séparer user et son login/pass (dans la base, dans le code, dans les 2) ?
J'avais aussi pensé à définir une simple jointure au niveau de l'User et ajouter les elements login et pass aux attributs de la classe User.
En gros je ne sais pas quel serait le mapping optimal pour ce que je souhaite réaliser :
A partir du login/pass retrouver l'User (pratique pour connexion)
Avec l'User avoir login/Pass (pratique pour modif)
et avec un code le plus simple,propre possible.
Partager