in serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-answer-service/src/main/java/org/acme/PostgreSqlQueryRecordRepository.java [78:100]
public void saveOrUpdate(QueryRecord queryRecord) {
try (Connection connection = dataSource.getConnection();
PreparedStatement st = connection.prepareStatement("INSERT INTO " + QUERY_RECORD_TABLE + " (" + QUERY_RECORD_COLUMNS + ") " +
" VALUES (?, ?, ?, ?, ?, ?) " +
"ON CONFLICT (processinstanceid) DO " +
"UPDATE SET query = ?, created = ?, status = ?, answer = ?, lastmodified = ?")) {
st.setString(1, queryRecord.getProcessInstanceId());
st.setString(2, queryRecord.getQuery());
st.setObject(3, queryRecord.getCreated().toLocalDateTime());
st.setString(4, queryRecord.getStatus());
st.setString(5, queryRecord.getAnswer());
st.setObject(6, queryRecord.getLastModified().toLocalDateTime());
st.setString(7, queryRecord.getQuery());
st.setObject(8, queryRecord.getCreated().toLocalDateTime());
st.setString(9, queryRecord.getStatus());
st.setString(10, queryRecord.getAnswer());
st.setObject(11, queryRecord.getLastModified().toLocalDateTime());
st.executeUpdate();
} catch (Exception e) {
throw new QueryAnswerServiceException("An error was produced during " + QUERY_RECORD_TABLE + " update: " + e.getMessage(), e);
}
}