[Seasar-user:17686] Re: [dbflute-ignoreCase in conditionBean]使い方法

thomas [E-MAIL ADDRESS DELETED]
2009年 6月 10日 (水) 18:25:44 JST


Hai
 i got the following Exception.

DEBUG 2009-06-10 18:20:54,171 [http-8080-1] END
projectmgnt.web.employeemaster.EmployeemasterListPage#prerender()
Throwable:java.lang.IllegalStateException
DEBUG 2009-06-10 18:20:54,203 [http-8080-1]
java.lang.IllegalStateException
    at
projectmgnt.web.employeemaster.EmployeemasterListPage$1.getExtensionOperand(EmployeemasterListPage.java:127)
    at
org.seasar.dbflute.cbean.ckey.ConditionKeyLikeSearch.doAddWhereClause(ConditionKeyLikeSearch.java:83)
    at
org.seasar.dbflute.cbean.ckey.ConditionKey.addWhereClause(ConditionKey.java:127)
    at
org.seasar.dbflute.cbean.sqlclause.AbstractSqlClause.registerWhereClause(AbstractSqlClause.java:770)
    at
org.seasar.dbflute.cbean.AbstractConditionQuery.setupConditionValueAndRegisterWhereClause(AbstractConditionQuery.java:1347)
    at
org.seasar.dbflute.cbean.AbstractConditionQuery.registerLikeSearchQuery(AbstractConditionQuery.java:489)
    at
org.seasar.dbflute.cbean.AbstractConditionQuery.regLSQ(AbstractConditionQuery.java:467)
    at
projectmgnt.dbflute.cbean.cq.bs.AbstractBsEmployeemasterCQ.setEmployeecode_LikeSearch(AbstractBsEmployeemasterCQ.java:126)
    at
projectmgnt.web.employeemaster.EmployeemasterListPage.prerender(EmployeemasterListPage.java:124)
    at
projectmgnt.web.employeemaster.EmployeemasterListPage$$EnhancedByS2AOP$$d8d990.$$prerender$$invokeSuperMethod$$(EmployeemasterListPage$$EnhancedByS2AOP$$d8d990.java)
    at
projectmgnt.web.employeemaster.EmployeemasterListPage$$EnhancedByS2AOP$$d8d990$$MethodInvocation$$prerender4.proceed(MethodInvocationClassGenerator.java)
    at
org.seasar.extension.tx.DefaultTransactionCallback.execute(DefaultTransactionCallback.java:58)
    at
org.seasar.extension.tx.adapter.JTATransactionManagerAdapter.required(JTATransactionManagerAdapter.java:65)
    at
org.seasar.extension.tx.RequiredInterceptor.invoke(RequiredInterceptor.java:41)
    at
projectmgnt.web.employeemaster.EmployeemasterListPage$$EnhancedByS2AOP$$d8d990$$MethodInvocation$$prerender4.proceed(MethodInvocationClassGenerator.java)
    at
org.seasar.framework.aop.interceptors.ThrowsInterceptor.invoke(ThrowsInterceptor.java:77)
    at
projectmgnt.web.employeemaster.EmployeemasterListPage$$EnhancedByS2AOP$$d8d990$$MethodInvocation$$prerender4.proceed(MethodInvocationClassGenerator.java)
    at
projectmgnt.interceptor.LoginUserInterceptor.invoke(LoginUserInterceptor.java:48)
    at
projectmgnt.web.employeemaster.EmployeemasterListPage$$EnhancedByS2AOP$$d8d990$$MethodInvocation$$prerender4.proceed(MethodInvocationClassGenerator.java)
    at
projectmgnt.interceptor.LoginAuthInterceptor.invoke(LoginAuthInterceptor.java:46)
    at
projectmgnt.web.employeemaster.EmployeemasterListPage$$EnhancedByS2AOP$$d8d990$$MethodInvocation$$prerender4.proceed(MethodInvocationClassGenerator.java)
    at
org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceInterceptor.java:73)
    at
projectmgnt.web.employeemaster.EmployeemasterListPage$$EnhancedByS2AOP$$d8d990$$MethodInvocation$$prerender4.proceed(MethodInvocationClassGenerator.java)
    at
projectmgnt.web.employeemaster.EmployeemasterListPage$$EnhancedByS2AOP$$d8d990.prerender(EmployeemasterListPage$$EnhancedByS2AOP$$d8d990.java)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.seasar.framework.util.MethodUtil.invoke(MethodUtil.java:93)
    at
org.seasar.framework.beans.impl.BeanDescImpl.invoke(BeanDescImpl.java:213)
    at
org.seasar.teeda.extension.html.impl.HtmlComponentInvokerImpl.invoke(HtmlComponentInvokerImpl.java:163)
    at
org.seasar.teeda.extension.html.impl.HtmlComponentInvokerImpl.invokePrerender(HtmlComponentInvokerImpl.java:138)
    at
org.seasar.teeda.extension.render.TViewRootRenderer.invoke(TViewRootRenderer.java:101)
    at
org.seasar.teeda.extension.render.TViewRootRenderer.invokeAll(TViewRootRenderer.java:81)
    at
org.seasar.teeda.extension.render.TViewRootRenderer.encodeBegin(TViewRootRenderer.java:61)
    at
javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:330)
    at javax.faces.component.UIViewRoot.encodeBegin(UIViewRoot.java:100)
    at
javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:247)
    at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:184)
    at
org.seasar.teeda.extension.taglib.TViewTag.doStartTag(TViewTag.java:98)
    at
org.seasar.teeda.extension.html.processor.ElementProcessorImpl.processTag(ElementProcessorImpl.java:145)
    at
org.seasar.teeda.extension.html.processor.ElementProcessorImpl.process(ElementProcessorImpl.java:138)
    at
org.seasar.teeda.extension.html.processor.ElementProcessorImpl.process(ElementProcessorImpl.java:119)
    at
org.seasar.teeda.extension.html.impl.HtmlViewHandler.renderView(HtmlViewHandler.java:157)
    at
org.seasar.teeda.extension.html.impl.HtmlViewHandler.renderView(HtmlViewHandler.java:143)
    at
org.seasar.teeda.core.lifecycle.impl.RenderResponsePhase.executePhase(RenderResponsePhase.java:39)
    at
org.seasar.teeda.core.lifecycle.AbstractPhase.execute(AbstractPhase.java:57)
    at
org.seasar.teeda.core.lifecycle.LifecycleImpl.render(LifecycleImpl.java:131)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:101)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at
projectmgnt.util.RequestDumpFilter.doFilter(RequestDumpFilter.java:74)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at
org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:63)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at
org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:77)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at
org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)

I have the following file in my lib folder

WEB-INF/lib
   |-dbflute-runtime.jar
   |-other...jar



whether i have to replace dbflute-runtime.jar with dbflute-runtime.jar-0.9.5
?

Regards,
トマス


On Wed, Jun 10, 2009 at 5:47 PM, kubo <[E-MAIL ADDRESS DELETED]> wrote:

> Hello,
>
> Thanks you for watching your log.
> The problem is that the code doesn't use 'ilike'.
> Now I don't know why the code doesn't...
> (Because the example works well)
>
> There are several things I want to confirm...
>
>
> 1. Does this code throw the exception?
>
> empCB.query().setEmployeecode_LikeSearch("emp", new LikeSearchOption() {
>    @Override
>    public ExtensionOperand getExtensionOperand() {
>         throw new IllegalStateException();
>        //return WayOfPostgreSQL.OperandOfLikeSearch.CASE_INSENSITIVE;
>    }
> }.likePrefix());
>
> *I want to confirm that the method is called by DBFlute Framework.
>
>
> 2. Is dbflute-runtime-0.9.5.jar valid on your Runtime Environment
>   (Did you remove an old jar file 'dbflute-runtime-0.9.4.1.jar' from
> Runtime Environment?)
>
> For example:
>
>  {o}
>  WEB-INF/lib
>    |-dbflute-runtime-0.9.5.jar
>    |-other...jar
>
>  {x}
>  WEB-INF/lib
>    |-dbflute-runtime-0.9.4.1.jar
>    |-dbflute-runtime-0.9.5.jar
>    |-other...jar
>
>
>
> 2009/6/10 thomas <[E-MAIL ADDRESS DELETED]>:
> > Hai,
> >
> > it uses like in SQL not ilike.
> >
> >
> >  EmployeemasterBhv.selectPage():paging()
> > DEBUG 2009-06-10 17:03:23,437
> > [http-8080-1]
> > ======================================/
> > DEBUG 2009-06-10 17:03:23,437 [http-8080-1]
> > EmployeemasterListPage.prerender():154 --> EmployeemasterBhv.selectPage()
> > --> ...
> > DEBUG 2009-06-10 17:03:23,437 [http-8080-1]
> > 論理的なコネクションを取得しました。tx=[FormatId=4360, GlobalId=1244620931796/5, BranchId=]
> > DEBUG 2009-06-10 17:03:23,437 [http-8080-1]
> > select dflocal.deleteflg as c1, dflocal.costrank as c2, dflocal.address1
> as
> > c3, dflocal.address2 as c4, dflocal.postalcode as c5, dflocal.lastupdated
> as
> > c6, dflocal.employeecode as c7, dflocal.employeenamekanji as c8,
> > dflocal.employeenamekana as c9, dflocal.employeefirstname as c10,
> > dflocal.employeelastname as c11, dflocal.dob as c12, dflocal.age as c13,
> > dflocal.joiningdate as c14, dflocal.designation as c15, dflocal.joblevel
> as
> > c16, dflocal.yearofexperience as c17, dflocal.housephoneno as c18,
> > dflocal.mobilephoneno as c19, dflocal.email as c20,
> dflocal.terminationdate
> > as c21, dflocal.registerdate as c22
> >   from employeemaster dflocal
> >  where dflocal.employeecode like 'emp%' escape '|'
> >  offset 0 limit 10
> >
> >
> > Regards,
> > トマス
> >
> >
> > On Tue, Jun 9, 2009 at 8:03 PM, kubo <[E-MAIL ADDRESS DELETED]> wrote:
> >>
> >> Hello,
> >>
> >> Please confirm your SQL on console log.
> >> Does the SQL use 'ilike'?
> >> (where EMPLOYEE_CODE ilike 'emp%')
> >>
> >> 2009/6/9 thomas <[E-MAIL ADDRESS DELETED]>:
> >> > hai,
> >> >
> >> > I upgraded my dbflute to 0.9.5.
> >> >
> >> > EmployeemasterCB empCB = employeemasterBhv.newMyConditionBean();
> >> >         empCB.query().setEmployeecode_LikeSearch("emp", new
> >> > LikeSearchOption() {
> >> >             @Override
> >> >             public ExtensionOperand getExtensionOperand() {
> >> >                 return
> >> > WayOfPostgreSQL.OperandOfLikeSearch.CASE_INSENSITIVE;
> >> >             }
> >> >         }.likePrefix());
> >> >
> >> > if i give "emp" as search condition it retrieves only The values
> starts
> >> > with
> >> > emp.
> >> >
> >> > InMy table i have the values
> >> >
> >> > emp22
> >> > EMP22
> >> > emp20
> >> > EMP20
> >> > .........
> >> > .........
> >> > ..........
> >> >
> >> > The above coding retrieves only emp22 and emp20
> >> > I want to retrieve EMP22 and EMP20 also.
> >> >
> >> >
> >> > Thanks
> >> > トマス
> >> >
> >> >
> >> >
> >> > 2009/6/9 thomas <[E-MAIL ADDRESS DELETED]>
> >> >>
> >> >> hai,
> >> >>
> >> >> Thanks for your helps!..
> >> >>
> >> >>
> >> >>
> >> >> On Tue, Jun 9, 2009 at 6:00 PM, kubo <[E-MAIL ADDRESS DELETED]> wrote:
> >> >>>
> >> >>> Hello,
> >> >>>
> >> >>> Sorry! I mistook your DBFlute version.
> >> >>> The method and class are supported since 0.9.5.
> >> >>> So please upgrade DBFlute to 0.9.5 if possible.
> >> >>>
> >> >>> 2009/6/9 thomas <[E-MAIL ADDRESS DELETED]>:
> >> >>> > hai,
> >> >>> >
> >> >>> > cb.query().setMemberName_
> >> >>> >>
> >> >>> >> LikeSearch("s", new LikeSearchOption() {
> >> >>> >>    @Override
> >> >>> >>    public ExtensionOperand getExtensionOperand() {
> >> >>> >>        return
> WayOfPostgreSQL.OperandOfLikeSearch.CASE_INSENSITIVE;
> >> >>> >>    }
> >> >>> >> }.likePrefix());
> >> >>> >
> >> >>> > import org.seasar.dbflute.dbway.ExtensionOperand;//Error
> >> >>> >
> >> >>> > there is no class in org.seasar.dbflute.dbway like
> ExtensionOperand
> >> >>> >
> >> >>> >
> >> >>> >
> >> >>> > 2009/6/9 kubo <[E-MAIL ADDRESS DELETED]>
> >> >>> >>
> >> >>> >> Hello,
> >> >>> >>
> >> >>> >> Please watch this test case:
> >> >>> >> The method is 'test_likeSearch_caseInsensitive_Tx()'.
> >> >>> >>
> >> >>> >>
> >> >>> >>
> >> >>> >>
> >> >>> >>
> https://www.seasar.org/svn/sandbox/dbflute/trunk/dbflute-postgresql-example/src/test/java/com/example/dbflute/postgresql/dbflute/various/VendorCheckTest.java
> >> >>> >>
> >> >>> >> cb.query().setMemberName_LikeSearch("s", new LikeSearchOption() {
> >> >>> >>    @Override
> >> >>> >>    public ExtensionOperand getExtensionOperand() {
> >> >>> >>        return
> WayOfPostgreSQL.OperandOfLikeSearch.CASE_INSENSITIVE;
> >> >>> >>    }
> >> >>> >> }.likePrefix());
> >> >>> >>
> >> >>> >> This code uses 'ilike' in the SQL.
> >> >>> >> (But this way is only available at PostgreSQL)
> >> >>> >>
> >> >>> >> If you have many many points that must be without case sensitive,
> >> >>> >> you should create CaseInsensitiveLikeSearchOption as your
> original
> >> >>> >> class.
> >> >>> >> Like this:
> >> >>> >>
> >> >>> >> public class CaseInsensitiveLikeSearchOption extends
> >> >>> >> LikeSearchOption
> >> >>> >> {
> >> >>> >>    @Override
> >> >>> >>    public ExtensionOperand getExtensionOperand() {
> >> >>> >>        return
> WayOfPostgreSQL.OperandOfLikeSearch.CASE_INSENSITIVE;
> >> >>> >>    }
> >> >>> >> }
> >> >>> >>
> >> >>> >> 2009/6/9 thomas <[E-MAIL ADDRESS DELETED]>:
> >> >>> >> > Hai,
> >> >>> >> >
> >> >>> >> > I am using PostgresQL 8.3
> >> >>> >> >
> >> >>> >> >
> >> >>> >> >
> >> >>> >> >
> >> >>> >> > 2009/6/9 kubo <[E-MAIL ADDRESS DELETED]>
> >> >>> >> >>
> >> >>> >> >> Hello, this is jflute.
> >> >>> >> >>
> >> >>> >> >> For starters, there is one thing I want to confirm.
> >> >>> >> >> What kind of database do you use?
> >> >>> >> >> Oracle? MySQL? PostgreSQL? ...
> >> >>> >> >>
> >> >>> >> >> 2009/6/9 thomas <[E-MAIL ADDRESS DELETED]>:
> >> >>> >> >> > Hai,
> >> >>> >> >> >
> >> >>> >> >> > I want to retrieve data without case sensitive using
> condition
> >> >>> >> >> > Bean.
> >> >>> >> >> >
> >> >>> >> >> > dbflute version 0.9.4.1
> >> >>> >> >> >
> >> >>> >> >> > empCB.query().setEmployeecode_LikeSearch(empcodes,new
> >> >>> >> >> > LikeSearchOption());
> >> >>> >> >> >
> >> >>> >> >> > How to change this code to get case sensitive result?
> >> >>> >> >> >
> >> >>> >> >> > Please give steps to achieve this...
> >> >>> >> >> >
> >> >>> >> >> > Thanks in advance.
> >> >>> >> >> > トマス
> >> >>> >> >> >
> >> >>> >> >> >
> >> >>> >> >> > _______________________________________________
> >> >>> >> >> > Seasar-user mailing list
> >> >>> >> >> > [E-MAIL ADDRESS DELETED]
> >> >>> >> >> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >> >>> >> >> >
> >> >>> >> >> >
> >> >>> >> >> _______________________________________________
> >> >>> >> >> Seasar-user mailing list
> >> >>> >> >> [E-MAIL ADDRESS DELETED]
> >> >>> >> >> https://ml.seasar.org/mailman/listinfo/seasar-user
> >> >>> >> >
> >> >>> >> >
> >> >>> >> > _______________________________________________
> >> >>> >> > Seasar-user mailing list
> >> >>> >> > [E-MAIL ADDRESS DELETED]
> >> >>> >> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >> >>> >> >
> >> >>> >> >
> >> >>> >> _______________________________________________
> >> >>> >> Seasar-user mailing list
> >> >>> >> [E-MAIL ADDRESS DELETED]
> >> >>> >> https://ml.seasar.org/mailman/listinfo/seasar-user
> >> >>> >
> >> >>> >
> >> >>> > _______________________________________________
> >> >>> > Seasar-user mailing list
> >> >>> > [E-MAIL ADDRESS DELETED]
> >> >>> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >> >>> >
> >> >>> >
> >> >>> _______________________________________________
> >> >>> Seasar-user mailing list
> >> >>> [E-MAIL ADDRESS DELETED]
> >> >>> https://ml.seasar.org/mailman/listinfo/seasar-user
> >> >>
> >> >
> >> >
> >> > _______________________________________________
> >> > Seasar-user mailing list
> >> > [E-MAIL ADDRESS DELETED]
> >> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >> >
> >> >
> >> _______________________________________________
> >> Seasar-user mailing list
> >> [E-MAIL ADDRESS DELETED]
> >> https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> >
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> >
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20090610/1091686a/attachment.html>


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