2009-07-03 7 views
-1

J'aime JSF et Hibernate mais j'ai un problème à prendre la bonne décision:JSF aide à la décision Hibernate

En fait, je POJO pour le client, Maison, problème et fils sur. et un délégué commercial RentManager. et les programmes pourraient aider le client à signaler un ou plusieurs problèmes que sa maison pourrait avoir.

Je veux obtenir tous les clients, maisons et problèmes. RentManager peut-il faire le travail d'interroger la base de données via les POJO et laisser les POJO sans collections? Si oui, toutes les méthodes d'utilitaires seront implémentées dans RentManager uniquement? ou dois-je faire une duplication dans les POJO? (Sec?)

c'est le fragment du programme, je veux obtenir de l'aide sur les

class Client{ 
    //setters/getters/ constructor are here. 
    //I have also client.hbm.xml and works fine 
} 
class Problem{ 
    //properties/setters/getters/ constructor 
} 

class House{ 
    //properties/setters/getters/ constructor 
} 

class RentManager{ 
    //List and ArrayList for houses, and problems, 
    //and clients + setters/getters/DataModel for these collections 

    // addProblem(), updateProblem(), .. 
    // addClient(), updateClient(), ... 
    // addHouse(), updateHouse(), ... 
} 

avec l'intension d'utiliser RentManager dans mon contrôleur au lieu d'accéder directement POJO du contrôleur. Est-ce que cette approche est correcte? ou avez-vous une suggestion? Merci de votre aide.

+0

Je n'arrive pas à comprendre ce que vous demandez dans cette partie: Est-ce que RentManager peut effectuer le travail d'interrogation de la base de données via les POJO et laisser les POJO sans collections? Si oui, toutes les méthodes d'utilitaires seront implémentées dans RentManager uniquement? –

+0

Pour obtenir des données de la base de données, nous utilisons des DAO et stockons des données dans des collections [ArrayList, DataModel, ...]. Donc ma question est, puis-je implémenter cette fonctionnalité dans RentManager et laisser les POJO sans collections? ou Dois-je inclure ces collections dans les POJO et RentManager? la question suivante est: Dois-je implémenter des méthodes utilitaires dans RentManager et POJO? par exemple: Maison de classe { /settere/getters/ addHouse (Maison) { ... }; } class RentManager { Liste maisons = ...; addHouse (maison) {...} //? DRY? Je suppose que je suis clair au moins 50%. merci –

+0

Pourriez-vous peut-être ajouter un pseudo code de ce que vous voulez faire que vous n'êtes pas sûr si vous le pouvez? – Drew

Répondre

0

Vous ne devriez pas stocker votre POJO (ni la liste de POJO ') dans votre classe RentManager. À la place, les méthodes qui obtiennent des entités à partir de la base de données doivent retourner POJO ou une collection de POJO. Ensuite, vous pouvez mettre à jour votre datamodel qui est une classe séparée de votre RentManager. Les méthodes qui enregistrent, mettent à jour ou suppriment des entités doivent être paramétrées comme POJO. Par exemple: Liste getAllclients(), void save (Client client), ...

Un autre concept consiste à mettre des méthodes de service (enregistrer, lire, ...) dans votre POJO. C'est ce qu'on appelle la conception axée sur le domaine, mais avec un tel design, vous n'avez plus besoin de RentManager.