Hi Bruce,
I tried it but i'm getting an exception. Here is my SQL and the error
message I get.
SELECT p FROM com.PCPgo.prm.web.location.LocationICDJdo p where
p.icdCodeJdo.icdId NOT IN LIST (SELECT l.icdId FROM
com.PCPgo.prm.web.location.LocationICDJdo WHERE l.loLocationId = $1)
org.exolab.castor.jdo.oql.OQLSyntaxException: An incorrect token type was
found near NOT (found KEYWORD_NOT, but expected END_OF_QUERY)
at org.exolab.castor.jdo.oql.Parser.match(Parser.java:208)
at org.exolab.castor.jdo.oql.Parser.getParseTree(Parser.java:170)
at
org.exolab.castor.jdo.engine.OQLQueryImpl.create(OQLQueryImpl.java:269)
at
org.exolab.castor.jdo.engine.DatabaseImpl.getOQLQuery(DatabaseImpl.java:467)
at
com.PCPgo.prm.web.encounter.AssessmentDB.search(AssessmentDB.java:113)
at
com.PCPgo.prm.web.encounter.AssessmentAction.execute(AssessmentAction.java:2
31)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProces
sor.java:465)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1422)
at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:523)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:260)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:380)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:533)
at java.lang.Thread.run(Thread.java:536)
Am I doing anything wrong in the query after NOT or the keyword NOT IN is
not supported bye castor?
Thanks,
Aditya
-----Original Message-----
From: Bruce Snyder [mailto:[EMAIL PROTECTED]
Sent: Friday, May 30, 2003 3:59 PM
To: [EMAIL PROTECTED]
Subject: Re: [castor-dev] How can I use NOT IN -- keyword
This one time, at band camp, Aditya Akella said:
AA>How can I use NOT IN -- keyword with the SQL statement in Castor. I was
able
AA>to make it work with CALL SQL as it is a SQL statement.
AA>
AA>Here is a example CALL SQL Statement.
AA>
AA>CALL SQL SELECT * from CPT_CODE where code like '%A' and CPT_ID NOT IN
AA>(SELECT CPT_ID FROM PROVIDER_CPT_PREFS WHERE PL_LOCATION_ID=1) AS
AA>CptCodeJdo;
AA>
AA>I want to do something like this
AA>
AA>SELECT p FROM CptCodeJdo p where p.cptCode LIKE $1 and p.cptId NOT IN
AA>(...........);
AA>
AA>I'm not able to use the NOT IN like this. Any code snippet would be very
AA>helpful.
Aditya,
See the JDO FAQ:
http://www.castor.org/jdo-faq.html#OQL
See the question, 'Does Castor support the SQL 'IN' expression?'
So I'm guessing that the syntax for NOT IN would be:
SELECT p FROM Product p WHERE p.id NOT IN LIST ( 123, 456, 789 )
I haven't tested this yet, so please let me know the outcome. Then I'll
update the FAQ.
Bruce
--
perl -e 'print
unpack("u30","<0G)[EMAIL PROTECTED]&5R\"F9E<G)E=\$\!F<FEI+F-O;0\`\`");'
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev