小编pat*_*nzi的帖子

NamedParameterJdbcTemplate和复合键

我编写了一种方法来检索具有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()方法工作?

java named-parameters jdbctemplate spring-data

3
推荐指数
1
解决办法
1992
查看次数