*Markus: SELECT mit Parameter mit Spring

Beitrag lesen

Hallo,

kann mir jemand sagen, wie man mit Spring _vernünftig_ Ein SELECT ausführt, bei dem man zusätzlich Parameter angibt? Natürlich könnte ich den SQL-String zusammenstückeln, aber das ist meiner Meinung nach nicht wirklich sauber.
Gibt es wirklich keine Möglichkeit, die Parameter _einfach_ zu übergeben?
Bei INSERT musste ich bei der Parameterliste immerhin auch schon mit new Object[]{....} arbeiten. Bei SELECT-Parametern funktioniert das offensichtlicht nicht. Ich bekomme folgenden Fehler:

Caused by: org.postgresql.util.PSQLException: Der in SQL für eine Instanz von java.lang.Character zu verwendende Datentyp kann nicht abgeleitet werden. Benutzen Sie 'setObject()' mit einem expliziten Typ, um ihn festzulegen.

Was heißt das, Benutzen sie setObject()? Wie, wo? Aus welcher Klasse heraus?

Die Methode sieht so aus:

  
 @SuppressWarnings("unchecked")  
 @Override  
 public List<Fallbsp1KundenMitProduktenDerKategorieXBo> getKundenMitProduktenDerKategorieX(char kategorie) {  
        return (List<Fallbsp1KundenMitProduktenDerKategorieXBo>)getJdbcTemplate().query(  
          "SELECT k_vorname, k_nachname, p_produktbezeichnung, p_preis " +  
          "FROM kunde INNER JOIN preis ON p_id = p_k_kunde " +  
          "WHERE p_k_preiskategorie = ?", new Object[]{kategorie}, new RowMapper(){  
                @Override  
                public Object mapRow(ResultSet rs, int arg1) throws SQLException {  
                     Fallbsp1KundenMitProduktenDerKategorieXBo b = new Fallbsp1KundenMitProduktenDerKategorieXBo();  
                    b.setK_vn(rs.getString("k_vorname"));  
                    b.setK_nn(rs.getString("k_nachname"));  
                    b.setProdukt(rs.getString("p_produktbezeichnung"));  
                    b.setPreis(rs.getFloat("p_preis"));  
                return b;  
     }  
          });  
 }  
  

Markus