PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Errore di byte di Postgres durante l'associazione di null alle istruzioni preparate

Non avendo ricevuto alcun feedback sotto forma di risposte e nemmeno un commento, mi stavo preparando a rinunciare, quando mi sono imbattuto in questo eccellente post sul blog:

Come associare tipi di parametri Hibernate personalizzati alle query JPA

Il post offre due opzioni per controllare i tipi che JPA passa attraverso il driver a Postgres (o qualunque sia effettivamente il database sottostante). Ho seguito l'approccio utilizzando TypedParameterValue . Ecco come appare il mio codice continuando con l'esempio sopra riportato:

Query query = entityManager.createNativeQuery(sqlString, MyEntity.class);
query.setParameter("param1", new TypedParameterValue(StringType.INSTANCE, null));
query.setParameter("param2", new TypedParameterValue(DoubleType.INSTANCE, null));
List<MyEntity> = query.getResultList();

Ovviamente è banale passare null per ogni parametro nella query, ma lo sto facendo principalmente per mostrare la sintassi per il testo e le doppie colonne. In pratica, ci aspetteremmo che almeno alcuni parametri non siano null , ma la sintassi precedente gestisce tutti i valori, null o meno.