[Seasar-user:3059] Re: [S2DAO] selectListID というフィールド名

ayataro@dd.mbn.or.jp ayataro
2005年 12月 21日 (水) 16:08:31 JST


 向後です。

 S2Daoのバグっぽいです。
 ソースを追ってみたら、DaoMetaDataImplの中のstartWithSelect
がまずいのではないかと。

 以下未テストかつ場当たりなpatch。

--- DaoMetaDataImpl.java        2005-12-21 16:03:15.13764320
0 +0900
+++ DaoMetaDataImpl.java.org    2005-12-21 16:02:19.27732000
0 +0900
@@ -48,10 +48,6 @@

        private static final Pattern startWithOrderByPattern
 =
                        Pattern.compile("(/\\*[^*]+\\*/)*ord
er by",Pattern.CASE_
INSENSITIVE);
-
-       private static final Pattern startWithSelectPattern 
=
-               Pattern.compile("^select\\s",Pattern.CASE_IN
SENSITIVE);
-
        private static final String[] INSERT_NAMES = new Str
ing[] { "insert",
                        "create", "add" };

@@ -211,13 +207,10 @@
        }

        protected static boolean startsWithSelect(String que
ry) {
-               if (query != null) {
-                       Matcher m = startWithSelectPattern.m
atcher(query);
-                       if (m.lookingAt()) {
-                               return true;
-                       }
-               }
-               return false;
+        if (query == null) {
+            return false;
+        }
+               return StringUtil.startsWith(query.trim(), "
select");
        }

        protected static boolean startsWithOrderBy(String qu
ery) {


Seasar-user メーリングリストの案内