Hibernate version: 2.1.8
Code between sessionFactory.openSession() and session.close():
Code:
public Object retrieveObj(Class c, Long id) throws DAOException {
Object obj = null;
try {
Session session = HibernateSession.currentSession();
obj = session.load(c, id);
} catch(HibernateException he) {
throw new DAOException(he);
}
finally {
closeSession();
}
return obj;
}
Name and version of the database you are using: MySQL 4.0.24Bonjour,
Je suis nouveau sur Hibernate et j'ai deja appris beaucoup de chose en quelques semaines, mais la, je trouve pas le solution par moi meme.
Je suis en train de developper une application Java utilisant SWT pour gerer des produits (disques durs, memoires, ...).
J'utilise des Table SWT pour afficher les differents produits.
Mon probleme arrive quand j'ai un produit qui peut etre vendu separement mais egalement vendu en tant que partie d'un aute produit.
Par exemple, j'ai un Enclosure (qui permet d'utiliser des disques durs de manieres externe) qui peut etre vendu "vide", mais egalement vendu en tant que produit complet, c'est a dire contenant un disque dur dedans.
Exemple :
Code:
public class Enclosure {
Long id;
String interfaceType;
int usbPorts;
int sataPorts;
int fireWirePorts;
}
Code:
public class Hdd {
Long id;
int speed;
int size;
int serialNumber;
}
Code:
public class Product {
Long id;
Enclosure enclosure;
Hdd hdd;
}
Lorsque je lance l'application, la liste des Enclosures, la liste des Hdds et la liste des Products sont chargees dans des Set. Je charge ces listes dans des Set pour eviter des acces trop frequents mais egalement pour eviter des temps de chargement et de filtrage des listes.
Les Enclosures contenant dans le Set d'Enclosures et les Enclosures contenu dans le Set de Product (en tant qu'attribut de Product) sont different du point de vue de la JVM. Ce qui est normale quand on lit la
doc.
Lorsque je modifie un objet dans une des table SWT (par exemple j'ajoute un port USB a un Enclosure), cette objet sera modifie dans le Set des Enclosures, mais pas dans le Set des Products (toujours par rapport a la
doc).
Question 1
Est-ce que le design que j'ai fait de l'application est mauvais ? C'est a dire est-ce qu'il est preferable d'acceder a la BDD pour chaque lecture/ecriture d'un objet ou plutot de faire comme j'ai : un Set qui se charge au debut et qui est MAJ (ainsi que l'objet en BDD) des qu'il est modifie ?
Question 2
Si mon design est bon, y a-t-il un moyen de mettre a jour toutes les references d'un objet dans tous les differents Set facilement (sans avoir a parcourir tous les Set) ?
Si je ne suis pas assez clair ou si vous avez d'autres informations ........
Merci d'avance.