From 5bdc7d6746366b7ecf3e16049a79b5d25ae3f7ec Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Wed, 8 Dec 2010 19:10:45 +0000 Subject: [PATCH] We want to use the class that owns the column expression rather than supplying one that may be incorrect. --- .../java/com/samskivert/depot/impl/BuildVisitor.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/samskivert/depot/impl/BuildVisitor.java b/src/main/java/com/samskivert/depot/impl/BuildVisitor.java index b933673..b24fcc4 100644 --- a/src/main/java/com/samskivert/depot/impl/BuildVisitor.java +++ b/src/main/java/com/samskivert/depot/impl/BuildVisitor.java @@ -157,7 +157,7 @@ public abstract class BuildVisitor implements FragmentVisitor // object, so we turn on overrides here just as we do when expanding SELECT fields boolean saved = _enableOverrides; _enableOverrides = true; - appendRhsColumn(pClass, keyFields[ii]); + appendRhsColumn(keyFields[ii]); _enableOverrides = saved; if (values[ii] == null) { _builder.append(" is null "); @@ -243,7 +243,7 @@ public abstract class BuildVisitor implements FragmentVisitor public Void visit (ColumnExp columnExp) { - appendRhsColumn(columnExp.getPersistentClass(), columnExp); + appendRhsColumn(columnExp); return null; } @@ -377,7 +377,7 @@ public abstract class BuildVisitor implements FragmentVisitor // write column to a temporary buffer StringBuilder saved = _builder; _builder = new StringBuilder(); - appendRhsColumn(pClass, field); + appendRhsColumn(field); String column = _builder.toString(); _builder = saved; @@ -796,8 +796,9 @@ public abstract class BuildVisitor implements FragmentVisitor // Appends an expression for the given field on the given persistent record; this can // appear in a SELECT list, in WHERE clauses, etc, etc. - protected void appendRhsColumn (Class type, ColumnExp field) + protected void appendRhsColumn (ColumnExp field) { + Class type = field.getPersistentClass(); DepotMarshaller dm = _types.getMarshaller(type); if (dm == null) { throw new IllegalArgumentException( @@ -989,7 +990,7 @@ public abstract class BuildVisitor implements FragmentVisitor protected StringBuilder _builder = new StringBuilder(); /** A mapping of field overrides per persistent record. */ - protected Map, Map> _definitions= + protected Map, Map> _definitions = Maps.newHashMap(); /** Set this to non-null to suppress table abbreviations from being prepended for a class. */