Aide à propos de one to many
Salut
Je suis débutant en SpringMVC (2.5.6), et je suis en train de développer une application utilisant JSP / JSTL pour les vues et Hibernate pour accéder à la base de données, j'ai réussi à faire des opérations CRUD sur les entités sans associations, mais j'ai des difficultés avec une association one to many voici la situation:
J'ai une classe Client et une classe de Projet avec leurs tables correspondantes (MySQL InnoDB), un client peut demander un ou plusieurs projets et un projet peut être demandé que par un seul client.
package com.domaine
Client.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
@Entity
@Table(name="client")
public class Client {
private Integer id;
private String nom;
...
//getters an setters
@Id
@GeneratedValue
@Column(name="nom_id")
public Integer getId() {
return id;
}
@Column(name="nom_client")
public String getNom() {
return nom;
....
} |
Project.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
@Entity
@Table(name="projet")
public class Projet {
private Integer id;
private String nom;
private Client client
...
@ManyToOne(cascade = CascadeType.ALL)
public Client getClient() {
return client;
}
...
} |
Donc je veux ajouter un projet à l'aide d'un formulaire jsp qui contient un champ select option rempli par tous les noms des clients de la base de données (ce qui serait une chaîne, mais j'ai besoin d'un objet client pour le mettre dans l'objet projet!). Comment dois-je procéder? sachant que j'utilise HibernateDaoSupportpour l'accès aux données (ProjectDAOImpl.java)
Voici l'architecture de l'application:
com.domaine:
Projet.java
Client.java
com.service:
ProjetService.java
CleintService.java
ProjetServiceImpl.java
CleintServiceImpl.java
com.dao:
ProjetDAO.java
ClientDAO.java
ProjetDAOImpl.java
ClientDAOImpl.java
com.web:
contrôleurs des pages par exemple:
AjouterProjetController.java => prépare la vue d'ajout du projet à savoir remplir la liste déroulante par les clients.
Je sais que c'est peut-être beaucoup à demander, mais j'ai besoin de faire marcher cet application.
MERCI D'AVANCE.