Tout d'abord je m'excuse si ce n'est pas au bon endroit où je dois poster mon message de détresse mais il me semble que c'est ici.
Ce cela n'est pas le cas, je m'en excuse.

Je développe une application sur la gestion des horaires, et avant que l'on insère une semaine pour une unité donnée, je souhaite vérifier si elle existe ou non pour celle-ci.

J'ai donc fais un méthode validation qui contient une méthode vérification pour savoir si la semaine existe. Cette méthode accepte 2 paramètres : idUnité et le numéro de la semaine :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
public void validate() { 
 
	boolean exists = false;
	if (this.uniteSelected != null && this.numeroSemaine != null){
		System.out.println("this.uniteSelected "+this.uniteSelected);
		System.out.println("this.numeroSemaine "+this.numeroSemaine);
 
 
		SemaineDTO semaineDtoVerif = this.semaineService.getSemainesForIdUniteAndNumSem(Integer.parseInt(this.uniteSelected),Integer.parseInt(this.numeroSemaine));
		if(semaineDtoVerif != null){
			System.out.println("2222222222  "+semaineDtoVerif);
		}
		System.out.println("semaineDtoVerif "+semaineDtoVerif);
		System.out.println("semaineDtoVerif Type : "+semaineDtoVerif.getType());
 
		if((semaineDtoVerif != null) && !"yes".equals(this.modeUpdate) && (semaineDtoVerif.getType().equals(this.getTypeSemaine()))){
			System.out.println("Je suis ici");
			addFieldError("error", "La semaine numéro "+this.numeroSemaine+" existe déjà en Base de données pour l'unité selectionnée. Si vous souhaitez la modifier, veuillez passez en mode modification.");
			exists = true;
		}
 
		System.out.println("typeSemaine : "+this.getTypeSemaine());
 
		if (!exists){
			List<SemaineDTO> semaineDtos = this.semaineService.getListSemaineForIdUnite(Integer.parseInt(this.uniteSelected));
			for(SemaineDTO semaineDto : semaineDtos){
				int numSemaineEnBase = semaineDto.getNumeroSemaine();
				Date dateDebut =  semaineDto.getDateDebutSem();
				System.out.println("*pp*dateDebut*pp* :"+dateDebut);
				Date dateFin = semaineDto.getDateFinSem();
				System.out.println("*pp*dateFin*pp* :"+dateFin);
				String typeSemaine = semaineDto.getType();
 
				System.out.println("***modeUpdate*** : "+this.modeUpdate);
				if(this.dateDebut != null ){
 
					if (dateDebut != null && dateFin != null && !"yes".equals(this.modeUpdate)){
 
						if((dateDebut.compareTo(this.dateDebut)==0) &&(dateFin.compareTo(this.dateFin)==0) && (typeSemaine.compareTo(this.typeSemaine) == 0)){
 
							System.out.println("dateDebut : "+dateDebut);
							System.out.println("La semaine "+numSemaineEnBase+" existe déjà en Base de données pour l'unité selectionnée. Si vous souhaitez la modifier, veuillez passez en mode modification.");
							addFieldError("error", "La semaine "+numSemaineEnBase+" existe déjà en Base de données pour l'unité selectionnée. Si vous souhaitez la modifier, veuillez passez en mode modification.");
							exists = true;
							break;
						}else{
							System.out.println("toto");
						}
					}
 
				}else{
						System.out.println("tata");
				}
			}
		}
 
	}
}
La méthode getSemainesForIdUniteAndNumSem(Integer idUnite, Integer numeroSemaine) est la suivante

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
public SemaineDTO getSemainesForIdUniteAndNumSem(Integer idUnite, Integer numeroSemaine){
 
		System.out.println("JE SUIS DANS getSemainesForIdUniteAndNumSem");
		Semaine semaineBeans =  this.semaineDao.getSemaineByIdUniteAndNumeSemaine(idUnite, numeroSemaine);
 
		SemaineDTO semaineDto = new SemaineDTO(semaineBeans);
 
		return semaineDto;
 
	}
La méthode getSemaineByIdUniteAndNumeSemaine(Integer idUnite, Integer numeroSemaine) est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
public Semaine getSemaineByIdUniteAndNumeSemaine(Integer idUnite, Integer numeSemaine){
	Semaine semaine = null;
	String queryString =
			"select semaine " +
					"from Semaine as semaine " +
					"where semaine.idUnite =? and semaine.numeroSemaine =?";
 
	Integer[] params = {idUnite, numeSemaine};
	semaine = (Semaine) this.getHibernateTemplate().find(queryString, params).get(0);
 
	return semaine;
}

Je n'ai pas d'erreur hibernate.

Donc comment puis je faire pour insérer la semaine si elle n'existe pas en BDD ?

Merci de votre aide