From 7178dd3f002380aee3205d83150c0d9a2d135ae4 Mon Sep 17 00:00:00 2001 From: Fay Wang Date: Mon, 22 Nov 2010 18:23:34 +0000 Subject: [PATCH] OPENJPA-1894: reduce the number of Strings created by SelectImpl.getTableIndex git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@1037819 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/openjpa/jdbc/sql/SelectImpl.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java index f19a0357f..6e03b8cf5 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java @@ -2032,7 +2032,7 @@ public class SelectImpl Integer i = null; Object key = table.getFullIdentifier().getName(); if (pj != null && pj.path() != null) - key = new Key(pj.path().toString(), key); + key = new Key(pj.getPathStr(), key); if (_ctx != null && (_parent != null || _subsels != null || _hasSub)) { i = findAliasForQuery(table, pj, key, create); @@ -2194,6 +2194,10 @@ public class SelectImpl public StringBuilder path() { return null; } + + public String getPathStr() { + return null; + } public JoinSet joins() { return null; @@ -2551,6 +2555,10 @@ public class SelectImpl public StringBuilder path() { return null; } + + public String getPathStr() { + return null; + } public JoinSet joins() { return null; @@ -2630,6 +2638,7 @@ public class SelectImpl protected String correlatedVar = null; protected Context context = null; protected Context lastContext = null; + protected String pathStr = null; public Select getSelect() { return null; @@ -2734,8 +2743,16 @@ public class SelectImpl path = new StringBuilder(str); else path.append('.').append(str); + pathStr = null; } } + + public String getPathStr() { + if (pathStr == null) { + pathStr = path.toString(); + } + return pathStr; + } public String toString() { return "PathJoinsImpl<" + hashCode() + ">: " @@ -3297,5 +3314,7 @@ interface PathJoins * @return */ public Select getSelect(); + + public String getPathStr(); }