Hello tout le monde,
Je suis débutant dans le dévelopement web Java et dans le framework spring et j'aurai quelques questions plus pratiques que techniques. Je suis entrain de développer une application Spring MVC et j'ai implémenté une architecture à 3 couches (DAO, Business et Web) comme dans le livre Spring par la pratique. J'utilise hibernate comme ORM.
Dans ma base de données, j'ai une table user qui est relié à la table Company par une relation many to one. Cette dernière est elle-même relié aux tables Industry, Country et Region par des relations many to one. Dans ces dernières je n'ai qu'une seule colonne name qui répresente leurs identifiants, par exemple pour la table country, l'identifiant est countryName.
J'ai une page jsp companyRegister où une personne peut créer un compte utilisateur et enregistrer son entreprise. Cette page contient des listboxes pour industry, country, region. Je charge les données de ces combobox depuis la méthode referenceData : model.put("countries", countryManager.findCountries());.
1ère question : Quand je récupère l'information d'une listbox, càd un string je crée un nouveau objet, par exemple country, dans la méthode onSubmit de mon controlleur et je mets l'information récupérée dans la propriété id de mon objet, Est-ce correct où serait-il mieux de créer une classe étendant propertyEditorSupport pour l'objet Country comme cela je n'ai pas besoin de créer un object Country dans mon controlleur car je récuperai un objet au lieu d'un string. Quelle est la manière correcte?
2ème : Quand je crée une companie à l'aide de ma page companyRegister je crée également un utilisateur. Dans la méthode onSubmit de mon controlleur je fais un createCompany(Company company) et un createUser(User). Si j'ai bien compris les transactions sont à implémenter dans la couche service donc s'il y a un problème lors de l'insertion je risque de créer une companie et pas l'utilisateur y relatif. Donc est-il mieux de passer mon objet user avec la méthode createCompany(Company company, User user) ou de l'insérer dans la collection User de mon objet company.
Merci pour votre temps et aide.
Steve
Partager