我编写了一种方法来检索具有NamedParameterJdbcTemplate的条目列表:
public final Map<K,V> findAll(final Collection<K> keys) {
if (keys == null) {
return null;
}
MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("ids", keys);
List<V> values = new NamedParameterJdbcTemplate(datasource).query("select * from TABLE where id in ( :ids )", parameters, mapper);
Map<K,V> results = new HashMap<K, V>();
for (V v : values) {
results.put((K) v.getId(), v);
}
return results;
}
Run Code Online (Sandbox Code Playgroud)
但这仅在键为简单类型时有效。我无法使用像这样的主键来工作:
public class CompositeKey implements Serializable {
private long field1;
private long field2;
}
Run Code Online (Sandbox Code Playgroud)
如何使用复合键使我的findAll()方法工作?