Estou construindo um wrapper para acesso ao banco de dados usando as funções Java do Lambda da AWS , o problema que estou tendo é que os parâmetros do Lambda são JSON, portanto, sem tipo, portanto, todos os parâmetros de entrada são de-JSON em Strings e, ao adicioná-los a um PreparedStatement usando o método setObject (param, value) todos eles são tratados como se você estivesse usando setString (param, value), isso é bom para Strings e números, mas quando se trata de um parâmetro que é um carimbo de data e hora, nós obtenha uma incompatibilidade de tipo de parâmetro como esta:
org.postgresql.util.PSQLException: operator does not exist: timestamp with time zone >= character varying
Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Estou ciente de que passar tipos de parâmetro como um campo extra para o JSON pode ajudar, mas estou preocupado com a sobrecarga extra e a necessidade de adicionar manualmente o tipo de parâmetro ao JSON, pois está sendo construído "automagicamente" do DTO subjacente usando GSON .
Alguém pode descobrir uma abordagem diferente, talvez passando os parâmetros para o PreparedStatement.?
Você precisará converter explicitamente suas strings de data e hora em tipos de dados apropriados. Como você optou por não incluir a instrução SQL em questão, só posso adivinhar como é, mas se se parece com
você precisará substituí-lo por
usando, é claro, uma string de formato apropriado.