IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Condition d'une requete dynamique


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 75
    Points : 88
    Points
    88
    Par défaut Condition d'une requete dynamique
    Salut.

    Je genere une requete EBJQL dynamiquement pour les conditions mais c'est un peu lourd.

    Il n'existe pas une autre facon plus classe?

    Un exemple:

    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
     
    	public List<Project> getDataGridProject() {
    		String SQLCondition = "";
    		if (selectedInstitution != null)
    			SQLCondition = " WHERE institution=:institution";
     
    		if (selectedArs != null)
    			if (SQLCondition.equals(""))
    				SQLCondition = " WHERE institution.ars=:ars";
    			else
    				SQLCondition += " AND institution.ars=:ars";
     
    		if (selectedPlan != null)
    			if (SQLCondition.equals(""))
    				SQLCondition = " WHERE plan=:plan";
    			else
    				SQLCondition += " AND plan=:plan";
     
    		List<Project> listProject = new ArrayList<Project>();
    		String sql = "SELECT p FROM Project p" + SQLCondition;
    		System.out.println("sql: " + sql);
    		Query q = entityManager.createQuery(sql);
     
    		if (selectedInstitution != null)
    			q.setParameter("institution", selectedInstitution);
    		if (selectedPlan != null)
    			q.setParameter("plan", selectedPlan);
    		if (selectedArs != null)
    			q.setParameter("ars", selectedArs);
     
    		listProject = q.getResultList();
    		return listProject;
    	}
    merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 75
    Points : 88
    Points
    88
    Par défaut
    Finalement j'ai utilisé EntityQuery
    ce qui donne qqch comme ca:

    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
     
    public class ProjectQueryBean extends EntityQuery<Project> {
     
    	private static final long serialVersionUID = 4351918511208372535L;
     
    	private static final String[] RESTRICTIONS = {
    			"p.plan.id = #{searchAction.selectedPlan.id}",
    			"p.institution.id = #{searchAction.selectedInstitution.id}",
    			"p.institution.ars.id = #{searchAction.selectedArs.id}", };
     
    	private Integer pageSize = 20;
     
    	private Integer firstResult = 0;
     
    	public ProjectQueryBean() {
    		setEjbql("select p from Project p");
    		setMaxResults(pageSize);
    		setFirstResult(firstResult);
    		getOrderKeyFieldMap().put("id", "p.id");
    		getOrderKeyFieldMap().put("code", "p.code");
    		getOrderKeyFieldMap().put("shortDescription", "p.shortDescription");
    		getOrderKeyFieldMap().put("ars", "p.institution.ars.name");
    		getOrderKeyFieldMap().put("institution", "p.institution.name");
    		getOrderKeyFieldMap().put("plan", "p.plan.name");
    		setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
    	}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Condition dans une requete (pas en SQL)
    Par Luc01 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 08/12/2006, 22h57
  2. [débutant] problème de condition dans une requete
    Par banker dans le forum Access
    Réponses: 5
    Dernier message: 22/03/2006, 13h52
  3. [MySQL] Condition pour une Requete sql vide
    Par needles94000 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/03/2006, 18h03
  4. Condition sur une requete
    Par faayy dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/04/2005, 14h28
  5. Introduire une condition dans une requete
    Par DeezerD dans le forum Langage SQL
    Réponses: 9
    Dernier message: 12/10/2004, 18h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo