From e1f211dc8e572cf47f83243b2de69e871387a1d4 Mon Sep 17 00:00:00 2001 From: samskivert Date: Sat, 6 Sep 2008 02:27:53 +0000 Subject: [PATCH] We need to set up our _builder in WithKeys. Also moved loadRecords() down below loadAndResolve(). git-svn-id: https://samskivert.googlecode.com/svn/trunk@2403 6335cc39-0255-0410-8fd6-9bcaacd3b74c --- .../samskivert/jdbc/depot/FindAllQuery.java | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/src/java/com/samskivert/jdbc/depot/FindAllQuery.java b/src/java/com/samskivert/jdbc/depot/FindAllQuery.java index 93e17ec1..5a1f7b59 100644 --- a/src/java/com/samskivert/jdbc/depot/FindAllQuery.java +++ b/src/java/com/samskivert/jdbc/depot/FindAllQuery.java @@ -125,6 +125,7 @@ public abstract class FindAllQuery { super(ctx, keys.iterator().next().getPersistentClass()); _keys = keys; + _builder = ctx.getSQLBuilder(new DepotTypes(ctx, _type)); } public List invoke (Connection conn, DatabaseLiaison liaison) @@ -226,33 +227,6 @@ public abstract class FindAllQuery return result; } - protected void loadRecords (Connection conn, Set> keys, Map, T> entities) - throws SQLException - { - _builder.newQuery(new SelectClause(_type, _marsh.getFieldNames(), - new KeySet(_type, keys))); - PreparedStatement stmt = _builder.prepare(conn); - try { - ResultSet rs = stmt.executeQuery(); - int cnt = 0, dups = 0; - while (rs.next()) { - T obj = _marsh.createObject(rs); - if (entities.put(_marsh.getPrimaryKey(obj), obj) != null) { - dups++; - } - cnt++; - } - if (cnt != keys.size()) { - log.warning("Row count mismatch in second pass [query=" + stmt + - ", wanted=" + keys.size() + ", got=" + cnt + - ", dups=" + dups + "]"); - } - - } finally { - JDBCUtil.close(stmt); - } - } - protected List loadAndResolve (Connection conn, Collection> allKeys, Set> fetchKeys, Map, T> entities) throws SQLException @@ -285,6 +259,33 @@ public abstract class FindAllQuery return result; } + protected void loadRecords (Connection conn, Set> keys, Map, T> entities) + throws SQLException + { + _builder.newQuery(new SelectClause(_type, _marsh.getFieldNames(), + new KeySet(_type, keys))); + PreparedStatement stmt = _builder.prepare(conn); + try { + ResultSet rs = stmt.executeQuery(); + int cnt = 0, dups = 0; + while (rs.next()) { + T obj = _marsh.createObject(rs); + if (entities.put(_marsh.getPrimaryKey(obj), obj) != null) { + dups++; + } + cnt++; + } + if (cnt != keys.size()) { + log.warning("Row count mismatch in second pass [query=" + stmt + + ", wanted=" + keys.size() + ", got=" + cnt + + ", dups=" + dups + "]"); + } + + } finally { + JDBCUtil.close(stmt); + } + } + protected PersistenceContext _ctx; protected SQLBuilder _builder; protected DepotMarshaller _marsh;