Associazione di un elenco di numeri interi in una clausola IN utilizzando Cayenne

StackOverflow https://stackoverflow.com/questions/514551

  •  21-08-2019
  •  | 
  •  

Domanda

Sto cercando di legare una lista di interi in uno SQLTemplate IN clausola in questo modo:

SELECT * FROM table1 WHERE id IN ( #bind($idList) );

Ho una stringa di ID:

idList = "1, 2, 3, 4";

Posso non avere la legano a lavorare con successo, restituisce nessun valore quando passo nella stringa come un elenco di ID per controllare.

Ho dover utilizzare concatenazione di stringhe per eseguire questo (non è l'ideale).

Tutte le idee su come avrei potuto farlo per legare correttamente?

Grazie in anticipo.

(sto usando Java / Cayenne / Postgres, e l'esecuzione della query con l'idlist passato come parametro, questo è un esempio semplificato, non il vero e proprio sql Sono in esecuzione).

Aggiorna ho capito come farlo. Risposta qui sotto.

È stato utile?

Soluzione

OK, ho trovato il modo di farlo non appena ho postato la domanda.

Invece di avere una stringa, utilizzare una lista di interi in questo modo:

List<Integer> ids = {1,2,3,4,5} (pseudocode) 

E per fare il bind, è necessario quanto segue:

SELECT * FROM table1 WHERE id IN ( #bind($idList, 'INTEGER') );

Poi passa nel parametro come al solito e che funzionerà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top