Commits
161 161 | |
162 162 | public List<String> getPersonIdBatch(String personIdPrefix) { |
163 163 | final String query = "SELECT DISTINCT PersonIdentifier FROM "+ getTableName() +" WHERE PersonIdentifier LIKE :prefix"; |
164 164 | |
165 165 | MapSqlParameterSource parameters = new MapSqlParameterSource(); |
166 166 | parameters.addValue("prefix", personIdPrefix + "%"); |
167 167 | |
168 168 | return namedParamJdbcTemplate.queryForList(query, parameters, String.class); |
169 169 | } |
170 170 | |
171 + | |
172 + | public List<String> getValidPersonIdBatch(String personIdPrefix) { |
173 + | final String query = "SELECT DISTINCT PersonIdentifier FROM "+ getTableName() +" WHERE PersonIdentifier LIKE :prefix AND ValidTo is null"; |
174 + | |
175 + | MapSqlParameterSource parameters = new MapSqlParameterSource(); |
176 + | parameters.addValue("prefix", personIdPrefix + "%"); |
177 + | |
178 + | return namedParamJdbcTemplate.queryForList(query, parameters, String.class); |
179 + | } |
180 + | |
171 181 | |
172 182 | public int deleteEntriesByPersonIdBatch(List<String> personIds) { |
173 183 | if(personIds.isEmpty()){ |
174 184 | return 0; |
175 185 | } |
176 186 | final String update = "DELETE FROM " + getTableName() + " WHERE PersonIdentifier IN (:personIds)"; |
177 187 | |
178 188 | MapSqlParameterSource parameters = new MapSqlParameterSource(); |
179 189 | parameters.addValue("personIds", personIds); |
180 190 | |
181 191 | log.trace(String.format("Executing deleteEntriesByPersonIdBatch with update: %s", update)); |
182 192 | |
183 193 | return namedParamJdbcTemplate.update(update, parameters); |
184 194 | } |
185 195 | |
186 196 | |
187 197 | public int updateEntriesByPersonIdBatch(List<String> personIds, Instant nowTimestamp) { |
188 198 | if(personIds.isEmpty()){ |
189 199 | return 0; |
190 200 | } |
191 - | final String update = "UPDATE " + getTableName() + " SET ValidTo = :validTo WHERE PersonIdentifier IN (:personIds)"; |
201 + | final String update = "UPDATE " + getTableName() + " SET ValidTo = :validTo WHERE PersonIdentifier IN (:personIds) AND ValidTo is null"; |
192 202 | |
193 203 | MapSqlParameterSource parameters = new MapSqlParameterSource(); |
194 204 | parameters.addValue("validTo", Timestamp.from(nowTimestamp), Types.TIMESTAMP); |
195 205 | parameters.addValue("personIds", personIds); |
196 206 | |
197 207 | log.trace(String.format("Executing updateEntriesByPersonIdBatch with update: %s", update)); |
198 208 | |
199 209 | return namedParamJdbcTemplate.update(update, parameters); |
200 210 | } |
201 211 | |