Bonjour, voici mon souci.
Je veux avoir acces aux données d'une TABLE A qui n'a pas de clé primaire (car elle a été faite il y a longtemps).
Pour obtenir une clé unique de la TABLE A, je concatene 9 champs de la table (ce qui me donne un String).
Et dans mon code j'ai une variable:
List<String> listKey
qui contient l'ensemble des cles unique, et que je souhaite récupérer une liste: List<MonObject> listMonObject
correspondant au cle unique de la variable listKey.
Or la TABLE A contient + de 500 000 lignes et ca prend 2 jours au moins

Voici ma methode dans mon dao:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
@SuppressWarnings("unchecked")
	public List<MonObject> listByConcatIdProperty(final List<String> propertyList) {
		final String request = String.format(" from %s"
				+ " as monObject where (monObject .id.property1 ||'.'|| monObject .id.property2 ||'.'|| "
				+ "monObject .id.property3 ||'.'|| monObject .id.property4 ||'.'|| monObject .id.property5 ||'.'|| "
				+ "monObject .id.property6 ||'.'|| monObject .id.property7 ||'.'|| monObject .id.property8 ||'.'|| "
				+ "monObject .id.cdevcot ||'.'|| monObject .id.property9) in (:propertyList)", getReferenceClass()
				.getName());
		final Query query = this.getCacheableQuery(request);
		query.setParameterList("propertyList", propertyList);
		return query.list();
	}
Auriez-vous une idee d'une autre maniere de procéder qui serai beaucoup + rapide?

Merci d'avance.