Omdat ik geen feedback had gekregen in de vorm van antwoorden of zelfs maar een opmerking, stond ik op het punt het op te geven toen ik deze uitstekende blogpost tegenkwam:
Aangepaste slaapstand-parametertypen binden aan JPA-query's
De post geeft twee opties voor het regelen van de typen die JPA door de driver naar Postgres (of wat de onderliggende database ook is) doorgeeft. Ik ging voor de aanpak met behulp van TypedParameterValue
. Dit is hoe mijn code eruitziet door verder te gaan met het bovenstaande voorbeeld:
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();
Het is natuurlijk triviaal om null
door te geven voor elke parameter in de query, maar ik doe dit voornamelijk om de syntaxis voor de tekst en dubbele kolommen te tonen. In de praktijk zouden we verwachten dat ten minste enkele van de parameters niet null
. zijn , maar de bovenstaande syntaxis behandelt alle waarden, null of anderszins.