Toplink 10 where clause using + and -

Hi all
How do I in toplink 10 create a query similar to
select *
from t
where t.a+t.b-t.c <> 0
I've searched the Expression and ExpressionOperation classes but I can't find anything. Manythanks
K

There is an ExpressionMath class that allows for mathematical operations.
i.e.
Expression expression = ExpressionMath.add(builder.get("b"), builder.get("a"));

Similar Messages

  • How can you add a where clause using "OR" with applied ViewCriteria?

    [JDeveloper 10.1.3 SU4]
    [JHeadstart 10.1.3 build 78]
    I am using JHeadstart, but have a question probably more in the ADF area. On the JHeadstart forum I asked:
    "I am overriding JhsApplicationModule's advancedSearch in order to be able to search in childtables. I created transient attributes, display those in advanced search and in the overridden method I check if any of these are filled by the user and create a where clause like 'EXISTS (SELECT 1 FROM <childtable> WHERE <column in childtable> = <column in EO's table> AND <another column in childtable> LIKE '<value supplied by user>)'. I add this whereclause using ViewObject.setWhereClause.
    So far so good and it works. However, if the user selects 'Result matches any criteria', combining setWhereClause and the normal advancedSearch QueryByExample implementation using ViewCriteriaRow do not provide the desired result, since the ViewCriteria and the setWhereClause are AND-ed together, which is fine if the user selects the (default) "Results match all criteria" (everything is AND-ed) but not the "Result matches any criteria", since then every criterium is OR-ed together, except for the setwhereclause criteria and the set of ViewCriteriaRows, they are AND-ed.
    I looked if I could specify that a WhereClause will be OR-ed to existing applied ViewCriteria, but no luck. Do I have to rewrite also advancedSearch's ViewCriteria implementation and write an entire setWhereClause implementation to be able to "OR" every criterium? Or any other suggestions? Can I look at the entire Where clause and rewrite it (after applyCriteria and setWhereClause are called on the VO)?
    Toine"
    Sandra Muller (JHeadstart Team) told me today: "This sounds like a JDeveloper/ADF issue that is not related to JHeadstart. The question is: how can you add a where clause using "OR" if there are already one or more ViewCriteria applied?
    To simplify the test case, you could create a simple ADF BC test client class in a test Model project without JHeadstart (in the test class, use bc4jclient + Ctrl-Enter), in which you first apply a few ViewCriteriaRows to a View Object and also add a where clause.
    Can you please log a TAR at MetaLink ( http://metalink.oracle.com/ ), or ask this question at the JDeveloper forum at http://otn.oracle.com/discussionforums/jdev.html ? (This what I am doing now ;-))
    Thanks,
    Sandra Muller
    JHeadstart Team
    Oracle Consulting"
    Anyone knowing the answer or am I asking for an enhancement?
    Toine

    Hi,
    Can you SET your whereclause as follows ?
    ('Y' = <isAnd>
    and EXISTS (SELECT 1 FROM <childtable> WHERE <column in childtable> = <column in EO's table> AND <another column in childtable> LIKE '<value supplied by user>))
    OR ('N' = <isAnd>
    AND EXISTS (SELECT 1 FROM <childtable> WHERE <column in childtable> = <column in EO's table> OR <another column in childtable> LIKE '<value supplied by user>))
    )

  • Urgent: Performance problem with where clause using IN and an OR condition

    Select statement is:
    select fl.feed_line_id
    from ap_expense_feed_lines_all fl
    where ((:1 is not null and
    fl.feed_line_id in (select distinct r2.object_id
    from xxdl_pcard_wf_routing_lists r2,
         per_people_f hr2
    where upper(hr2.full_name) like upper(:1||'%')
              and hr2.person_id = r2.person_id
    and r2.fyi_list is null
              and r2.sequence_number <> 0))
    or
    (:1 is null))
    If I modify the statement to remove the "or (:1 is null))" part at the bottom of the where clause, it returns in .16 seconds. If I modify the statement to only contain the "(:1 is null))" part of the where clause, it returns in .02 seconds. With the whole statement above, it returns in 477 seconds. Anyone have any suggestions?
    Explain plan for the whole statement is:
    (1) SELECT STATEMENT CHOOSE
    Est. Rows: 10,960 Cost: 212
    FILTER
    (2) TABLE ACCESS FULL AP.AP_EXPENSE_FEED_LINES_ALL [Analyzed]
    (2) Blocks: 8,610 Est. Rows: 10,960 of 209,260 Cost: 212
    Tablespace: APD
    (6) TABLE ACCESS BY INDEX ROWID HR.PER_ALL_PEOPLE_F [Analyzed]
    (6) Blocks: 4,580 Est. Rows: 1 of 85,500 Cost: 2
    Tablespace: HRD
    (5) NESTED LOOPS
    Est. Rows: 1 Cost: 4
    (3) TABLE ACCESS FULL XXDL.XXDL_PCARD_WF_ROUTING_LISTS [Analyzed]
    (3) Blocks: 19 Est. Rows: 1 of 1,303 Cost: 2
    Tablespace: XXDLD
    (4) UNIQUE INDEX RANGE SCAN HR.PER_PEOPLE_F_PK [Analyzed]
    Est. Rows: 1 Cost: 1
    Thanks in advance,
    Peter

    Thanks for the reply, but I have already checked what you are suggesting and I am pretty sure those are not causing the problem. The hr2.full_name column has an upper index and the (4) line of the explain plan shows that index being used. In addition, that part of the query executes on its own quickly.
    Because the sql is not displayed in an indented format on this page it is a little hard to understand the structure so I am going to restate what is happening.
    My sql is:
    select a_column
    from a_table
    where ((:1 is not null) and a_column in (sub-select statement)
    or
    (:1 is null))
    The :1 bind variable is set to a varchar2 entered on the screen of an application.
    If I execute either part of the sql without the OR condition, performance is good.
    If the :1 bind variable is null with the whole sql statement (so all rows or a_table are returned), performance is still good.
    If the :1 bind variable is a not-null value with the whole sql statement, performance stinks.
    As an example:
    where (('wa' is not null) and a_column in (sub-select statement)) -- fast
    where (('wa' is null)) -- fast
    where (('' is not null) and a_column in (sub-select statement) -- fast
    or
    ('' is null))
    where (('wa' is not null) and a_column in (sub-select statement) -- slow
    or
    ('wa' is null))

  • Derive found flag in SQL with where clause using TABLE(CAST function

    Dear All,
    Stored procedure listEmployees
    ==========================
    CREATE OR REPLACE TYPE STRING_ARRAY AS VARRAY(8000) OF VARCHAR2(15);
    empIdList STRING_ARRAY
    countriesList STRING_ARRAY
    SELECT EMP_ID, EMP_COUNTRY, EMP_NAME, FOUND_FLAG_
    FROM EMPLOYEE WHERE
    EMP_ID IN
    (SELECT * FROM TABLE(CAST(empIdList AS STRING_ARRAY))
    AND EMP_COUNTRY IN
    (SELECT * FROM TABLE(CAST(countriesList AS STRING_ARRAY))
    =================
    I have a stored procedure which lists the employees using above simple query.
    Here I am using table CAST function to find the list of employees in one go
    instead of looping through each and every employee
    Everything fine until requirements forced me to get the FOUND_FLAG as well.
    Now I wanted derive the FOUND_FLAG by using rownum, rowid, decode functions
    but I was not successful
    Can you please suggest if there is any intelligent way to say weather the
    row is found for given parameters in the where clause?
    If not I may have to loop through each set of empIdList, countriesList
    and find the values individually just to set a flag. In this approach I can’t use
    the TABLE CAST function which is efficient I suppose.
    Note that query STRING_ARRAY is an VARRAY. It is very big in size and this procedure
    suppose to handle large sets of data.
    Thanks In advance
    Regards
    Charan
    Edited by: kmcharan on 03-Dec-2009 09:55
    Edited by: kmcharan on 03-Dec-2009 09:55

    If your query returns results, you have found them... so your "FOUND" flag might be a constant,...

  • Empty WHERE Clause with AND condition after

    I have a question concerning a SQL query that I am using for a report. I have converted an old report to Crystal Reports 2008 and the resulting SQL query no longer works.
    After the conversion all the inner joins that were previously used in the report were moved to the FROM clause.
    My resulting WHERE clause is as follows:
    WHERE   AND
    "TABLE"."TABLEKEY" IS NOT NULL
    I get this error message:
    ORA-00936 Missing expression
    As you can see there WHERE clause has nothing before the AND condition because all the inner joins have moved to the FROM clause in the new version of Crystal Reports. I am fine with these inner joins moving but how do I take care of this empty condition.
    Any help is appreciated.

    Hi Joshua
    Please go through the following SAP note which deals with similar type of issue.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_erq/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes%7B6163636573733d36393736354636443646363436353344333933393338323636393736354637333631373036453646373436353733354636453735364436323635373233443330333033303331333233313335333533393334%7D.do
    Thanks

  • Generating a 'WHERE' clause using a function

    Hi I have below requirement,
    for given function below are input parameters,
    sk_func(salary,dept_no,job,hire_date)
    which ever input is given those inputs should be there in one statement,
    For example if I give input as
    select sk_func(5000,null,null,null) from dual;
    I need output as Where salary=5000;
    if I give input as
    select sk_func(5000,null,'Programmer',null) from dual;
    I need output as Where Salary=5000 and job='Programmer';
    Hope am clear,
    In short which ever values are not null, those all should include in my where clause,
    I know how to do it, but taking into considerations, am finding the best way to do it,
    Thanks for your responses,

    Hi Karthik,
    this is the api, I have done,
    create or replace
    FUNCTION get_where_clause_for_emp_req (
       emp_id       IN   NUMBER,
       salary            IN   NUMBER,
       job         IN   VARCHAR2,
       dept IN NUMBER
       RETURN VARCHAR2
    IS
       l_where_clause   VARCHAR2 (2000);
    BEGIN
       IF (    (emp_id IS NULL)
           AND (salary IS NULL)
           AND (job IS NULL)
           AND (deptIS NULL)
       THEN
          RETURN NULL;
       ELSE
          l_where_clause := 'WHERE ';
       END IF;
       IF (emp_id IS NOT NULL)
       THEN
          l_where_clause :=
                        l_where_clause || ' emp_id =' || emp_id || '';
       END IF;
       IF ((emp_id IS NOT NULL) AND (salary IS NOT NULL))
       THEN
          l_where_clause :=
                          l_where_clause || ' AND salary= ' || salary;
       ELSIF (salary IS NOT NULL)
       THEN
          l_where_clause := l_where_clause || ' salary= ' || salary;
       END IF;
       IF (((salary IS NOT NULL) AND (dept IS NOT NULL)) OR ((emp_id IS NOT NULL) AND (salary IS NULL) AND (dept IS NOT NULL)))
       THEN
          l_where_clause := l_where_clause || ' AND dept= ' || dept;
       ELSIF (status_i IS NOT NULL)
       THEN
          l_where_clause := l_where_clause || ' dept= ' || dept;
       END IF;
    l_where_clause := l_where_clause || ' ;';
       RETURN l_where_clause;
    END;I have done for three parameters, i need to include two more input parameters for this function, so I see going forward my testing cases will increases,
    so am looking for the best solution
    Thanks
    Edited by: NSK2KSN on Jul 7, 2010 3:11 PM

  • Can't Export data if WHERE clause contains AND/OR

    I am able to export the results of a query if the WHERE clause only has one condition. But if there is and AND or an OR, you can right-click and choose Export Data, but nothing happens.
    For example, the following will Export just fine:
    SELECT * FROM DUAL
    WHERE ROWNUM = 1;
    But throw in an 'AND', and it won't Export:
    SELECT * FROM DUAL
    WHERE ROWNUM = 1 AND ROWNUM < 2;
    I am running Ver 1.5.3 and haven't applied any patches.

    Unfortunately, as part of trying to fix other issues with the export functionality, 1.5.3 introduced problems where certain types of SQL statements wouldn't export (either nothing happened as you are seeing or reporting error messages like ORA-936). While it is not yet perfect, 1.5.5 handles exporting results much better (it copes with your case that fails in 1.5.3), so I would suggest you upgrade to 1.5.5.
    theFurryOne

  • Module_data where clause using globals.site.dateNow

    I'm trying (and failing) to get a list of blog posts that are excluding the not yet released posts, here is what I have:
    {module_data resource="blogposts" version="v3" fields="id,siteId,blogId,postTitle,createBy,releaseDate,createDate,lastUpdateDate,enabled ,deleted,disableComments,slug,postUrl,metaBlogPostTitle,metaBlogPostDescription" skip="0" limit="10" where="\{'blog.releaseDate':\{'$lt':'{{globals.site.dateNow}}'\}\}" order="-id" collection="myData"}
    The "query" works but it ignores the globals.site.dateNow and displays everything (including posts greater than today).
    If I do a greater than (in testing), it doesn't display anything, it should have only displayed the unreleased blog posts.
    Bug? User error? Formatting incorrect? Any tips would be great.

    Hi Rich,
    In your 'where' filter above, you are using, 'blog.releaseDate', if you want to filter the data based on the blog posts' release date then use 'releaseDate' only. Like this -
    where="\{'releaseDate':\{'$lt':'{{globals.site.dateNow}}'\}\}"
    Let me know if you need more clarification on this.
    - Abhishek Maurya

  • Where Clause. AND how to in ejbql??

    Hi This is what I want to add:
    select e from DataBean where e.userId = ?1 AND e.name = ?2
    How can I do this?? Please respond asap if you know the ans.
    Thanks, Bhavna.

    SELECT OBJECT(p) FROM DataBean AS p WHERE p.userId=?1 AND p.name=?2
    Note: 'DataBean' is the <abstract-schema-name> as defined in the ejb-jar.xml.

  • Difference between named where clause param and simple ui exposed bv

    Hi ppl,
    I just had a small question ,
    Assuming i have a view object with a named bind variable ( i give it at time of creation/definition itself ) ..
    In order to set this, for some simple usage such as a list table , i believe there are two ways:-
    1) in my managed bean , i could set the bind variable using the setNamedWhereClauseParameter
    OR
    2) i could expose the setter of my bind variable to the client interface and then set it manually
    following either of the above , i would do a vo.executeQuery() ....
    Are there any differences in the above approach ? which would be more appropriate ?
    K

    Hi,
    except for that using a client method is less code to write because you don't have to get a handle to the VO first, I don't see a difference.
    However, you can also create a binding in the pagedef fiel to the ExectuteWithParams operation on the ViewObject, in which case you could
    - get a handle to the ExecuteWithParams binding (e.g. named "myHandlerToExecute")
    - then do
    myHandlerToExecute.getParamMap().put("bindVar Name", value);
    myHandlerToExecute.execute();
    Might be the smarter way and probably best practices too (for more details see the developer guide)
    Frank

  • How do you use 3 Where Clauses in a query

    Hi, i am trying to figure out how to use 3 Where Clauses in a Query where 2 of the Where Clauses uses a Sub query.
    Display the OrderID of all orders that where placed after all orders placed by “Bottom-Dollar Markets”.
    Order the result by OrderID in ascending order.
    First WHERE clause checks for OrderDate and uses a sub query with ALL keyword.
    Second WHERE clause use equals and sub query.
    Third WHERE clause uses equal and company name.
    This is what i have so far but i am pretty confused on how to do this.
    My Code for NorthWind:
    Select OrderID
    From Orders o
    Where o.OrderID IN (Select OrderDate From Orders Where Orders.OrderID > ALL
    (Select CompanyName From Customers Where CompanyName = 'Bottom-Dollar Markets'));
    The book shows how to use the ALL Keyword but not in a Sub query with Multiple Where Clauses.
    Select VenderName, InvoiceNumber, InvoiceTotal
    FROM Invoices JOIN Vendors ON Invoices.VendorID = Vendors.VendorID
    WHERE InvoiceTotal > ALL (Select InvoiceTotal From Invoices Where VendorID = 34)
    ORDER BY VendorName;

    >Where Orders.OrderDate
    > ALL  (Select
    CompanyName
    The comparison operator (>) requires compatible data types.
    DATETIME is not compatible with VARCHAR string for comparison.
    Here is your homework:
    SELECT orderid
    FROM orders o
    WHERE o.orderdate > ALL (SELECT orderdate
    FROM orders
    WHERE shipvia = (SELECT Max(shipvia)
    FROM orders o
    INNER JOIN customers c
    ON c.customerid =
    o.customerid
    WHERE
    c.companyname = 'Bottom-Dollar Markets'));
    11064
    11065
    11066
    11067
    11068
    11069
    11070
    11071
    11072
    11073
    11074
    11075
    11076
    11077
    Kalman Toth Database & OLAP Architect
    SQL Server 2014 Database Design
    New Book / Kindle: Beginner Database Design & SQL Programming Using Microsoft SQL Server 2014

  • Dynamic Where Clause in select using member attribute of class

    Hello,
    can anybody provide me some tips how to solve this problem:
              SELECT (lv_sql_select) INTO CORRESPONDING FIELDS OF TABLE lt_cntrl2
                         FROM (lv_db_name)
                     FOR ALL ENTRIES IN mt_guids
                 WHERE (lv_sql_where).
    works perfectly fine if I use a local table variable or a member of my class. But if I build my where clause using a member attribute of my class which comes from the interace- exactly the same type and data as before I get a dump.
    SELECT (lv_sql_select) INTO CORRESPONDING FIELDS OF TABLE lt_xyz
                         FROM (lv_db_name)
                     FOR ALL ENTRIES IN if_abc~mt_guids
    my where clause "guid = if_abc~mt_guids-guid.
    Dump:
    Error analysis
        An exception occurred that is explained in detail below.
        The exception, which is assigned to class 'CX_SY_DYNAMIC_OSQL_SEMANTICS', was
         not caught in
        procedure "....GET_DATA" "(METHOD)", nor was it propagated
         by a RAISING clause.
        Since the caller of the procedure could not have anticipated that the
        exception would occur, the current program is terminated.
        The reason for the exception is:
        Das laufende ABAP-Programm wollte eine Open SQL-Anweisung ausführen,
        die eine dynamische Angabe enthält. Der Parser lieferte jedoch den
        Fehler: "Wrong table name or table alias name table alias name
         table alias name "....". table alias name
         "...". table alias name "...". t"

    Hi Marco Freischlag,
      As per my understanding , if we give for all entries we want to use internal table ,  For where conditions you want to pass variable , not internal table one filed,because it will not have header line...
    so code like this...
    SELECT (lv_sql_select) INTO CORRESPONDING FIELDS OF TABLE lt_xyz
                         FROM (lv_db_name)
                     FOR ALL ENTRIES IN if_abc~mt_guids
              where guid = if_abc~mt_guids-guid. " Here pass some variable or work area in it and test.
    Thanks,
    Vijay SR

  • Queryeditor using fields more than once in where clause not possible?

    I have to create a select query with a WHERE clause using a field multiple times.
    I can't get this to work. For example:
    SELECT ALL
      EMSDTALIB.EMSPPA.PAIDNR,
      EMSDTALIB.EMSPPA.PANAAM,
      EMSDTALIB.EMSPPA.PAVLTR,
      EMSDTALIB.EMSPPA.PATITL,
      EMSDTALIB.EMSPPA.PAADRS,
      EMSDTALIB.EMSPPA.PAHSNR,
      EMSDTALIB.EMSPPA.PAHSNT,
      EMSDTALIB.EMSPPA.PAPCA1
    FROM EMSDTALIB.EMSPPA
    WHERE EMSDTALIB.EMSPPA.PABEDR=1 AND EMSDTALIB.EMSPPA.PADTUD=0 AND
      (EMSDTALIB.EMSPPA.PADVBD='001' OR EMSDTALIB.EMSPPA.PADVBD='003' OR EMSDTALIB.EMSPPA.PADVBD='006')How do I get this to work?
    Regards,
    Roland

    Hi Roland, Luca, ICON_SS,
    I just tried similar queries using the latest release bits and it works fine.
    My Queries that worked fine are :
    SELECT ALL DASUSR1.PERSON.PERSONID, DASUSR1.PERSON.NAME, DASUSR1.PERSON.JOBTITLE, DASUSR1.PERSON.FREQUENTFLYER
    FROM DASUSR1.PERSON
    WHERE ( DASUSR1.PERSON.NAME='Able, Tony' OR NAME='Black, John' )
    SELECT ALL DASUSR1.PERSON.PERSONID, DASUSR1.PERSON.NAME, DASUSR1.PERSON.JOBTITLE, DASUSR1.PERSON.FREQUENTFLYER
    FROM DASUSR1.PERSON
    WHERE ( DASUSR1.PERSON.PERSONID=1 OR PERSONID=2 OR PERSONID=3)
    I would suggest you to Download & Install latest Creator bits released 9/27/2004, if not already done.
    Appreciate your valuable feedback,
    Sakthi

  • Use "ListContains' in a WHERE clause

    I believe I have a syntax problem and could you some help.
    First, I have a field in an Access DB called 'degree" that conatins
    a list of numbers. This list can be any combination of the numbers
    4 through 32. On my search page I have a selection box in a form to
    select a value of the degree to search for. The variable passed
    from the form is called "degreeValue". I have a component that lets
    me build my WHERE clause using several seach criteria. It functions
    perfectly prior to adding the search for "degree". I attempted to
    use "ListContains" in the WHERE clause using "degree" as the name
    of my list and "degreeValue" as my substring to search for. The
    error I get says that "variable degree is undefined". I am
    attaching the full code of the compoanent so you can see it. Again,
    it works if you take out the subclause build for "degree".

    I understand what you are saying and in other situations have
    done my tables that way. I didn't this time because this is one of
    those... "add it later" kind of things. Yes, the field does look
    like "1,2,3,4,etc.." The inventory a couple thousand items each
    with a number (catno). As you obviously noticed the inventory table
    houses most of the data for the items. The "degree" field in the
    past was only used to populate a series of checkboxes and was not
    searchable, thus a list was used.
    With a possibility of 29 values for "degree" and a
    possiblility of over 2,000 inventory items you can see a newly
    created table might become quite large. It would be nice if I could
    use the current structure.
    You are absolutely correct saying the design should be
    different. Thank you for your quick reply and good information.

  • Where clause and order by to DAO classes

    Hi
    Is it ok(I mean design wise) to pass the 'where clause' conditions and order by clause as a parameter to the method of DAO class?

    Well, I would suggest you write seperate methods in your dao , one to select data without the where clause and one to select data with the where clause thrown in. If you have different 'where' clauses for selecting different kinds of data, have that many dao methods. The dao methods being specific know exactly what is the data that's coming in.
    Lets assume you have a list of purchase orders and each purchase order is indetified by a unique id called PURCHASE_ORDER_ID.
    1. The following code would populate a purchase order's details given an id.
    private statis final String QUERY_1 = "select * from PURCHASE_ORDERS where PURCHASE_ORDER_ID = ? ";
    PurchaseOrderModel getPurchaseOrderData(long poId){
         //get a prepared statement from your connection
         PreparedStatement pst = conn.prepareStatement(QUERY_1);
         //set the poId passed as params to your query
         pst.setLong(1, poId);
         ResultSet rs = pst.executeQuery();
         if(rs.next()){
              //populate data into a model          
         finally{
              //clean up resources
         return model;    
    }2. The following code would return a list of PurchaseOrderModel's whose shipping date falls between a set of dates selected by the user.
    private statis final String QUERY_2 = "select * from PURCHASE_ORDERS where SHIPPING_DATE between ? and ? ";
    PurchaseOrderModel getPurchaseOrdersBetweenDates(list bindValues){
         //get a prepared statement from your connection
         PreparedStatement pst = conn.prepareStatement(QUERY_1);
         //set the dates passed as params to your query
         //we know that the List ought to contain only 2 dates
         pst.setDate(1, (Date)bindValues.get(0));
         pst.setDate(2, (Date)bindValues.get(1));
         ResultSet rs = pst.executeQuery();
         if(rs.next()){
              //iterate and populate data into a model          
              //add model to a list
         finally{
              //clean up resources
         return list;    
         3. This is more interesting - the dao method searches a list of Purchase Orders starting with a set of specific words. The words themselves may be one or many. This means that the number of '?' in your prepared statement may be dynamic. Each element of the list is a String that contains the start substring of a purcahse order name. For example - the list may contain elements like ["a", "ab", "c", "gh"] and the dao method returns all purchase order starting with these names.
    private statis final String QUERY_3 = "select * from PURCHASE_ORDERS where ";
    PurchaseOrderModel getPurchaseOrderNameMatches(list bindValues){
         //construct the query dynamically
         StringBuffer query = new StringBuffer(QUERY_3);
         int count = 0;
         for(Iterator itr = bindValues.iterator(); itr.hasNext();;){
              String value = (String)itr.next();
              query.append ("name like 'value%' ");
              if (count != 0 and (count+1 != bindValues.length)){
                   query.append(" or ");
              count ++;          
         //get a prepared statement from your connection
         PreparedStatement pst = conn.prepareStatement(query.toString());     
         ResultSet rs = pst.executeQuery();
         if(rs.next()){
              //iterate and populate data into a model          
              //add model to a list
         finally{
              //clean up resources
         return list;    
    To sum up,
    1. You need as many methods as you have different kinds of searches (one method for each kind of 'where' clause).
    2. The ejb/business layer would examine the data and decide on which method to call.
    3. Increases coding effort, but makes the code clean and readable. Each layer does it's job. Thus we dont have ejbs forming 'where' clauses and so on.
    Having said that, it really is your decision - you should take into consideration the following factors -
    1. How big is the project ? If its a huge codebase developed by many people, then segregate the responsibilities clearly in each layer as I have outlined. For a small scale project, you could go with your approach.
    2. Whats the take on maintenance and future add-ons ? Do you see the codebase growing with time ?
    3. Is your project a commercial one - is it a product that needs to be maintained or is it a one-off development - develop once and you are done with it.
    4. What are the design considerations ? Is somebody going to audit code for quality ? Or is it a academic one ?
    You should take into account all these before deciding to go one way or the other.
    A general thumb rule should be that you should be convinced that your code readable (maintainable), scalable and efficient. Anything that you do towards these ends is good code/design despite what people/books/patterns say, IMO.
    cheers,
    ram.

Maybe you are looking for

  • ITunes won't open - any ideas what's going on?

    Whenever I try to open iTunes, whether from the start menu or with the shortcut, it doesn't work. I get the hourglass for a few seconds, then it becomes a cursor again and that's all. No sign that I just tried to load a program.   Windows XP  

  • How do you combine your photo librarys

    Hi how do you combine photo librarys after you have made more than one please and thank-you?

  • Queries in abap

    Hi , Please provide the answers to the following: Idocs: 1.How are where are the change pointers used and their purpose? 2.How is the idoc configured with message control technology? 3.There are 16 idocs for execution. Among them the 5th idoc contain

  • Java ME SDK 3.0 not working on Windows 7 64-bit

    Hi everybody, the sdk has no 64-bit Version and the solution described at: http://forums.sun.com/thread.jspa?threadID=5434297&tstart=45 did not work for me. Even after changing the two configuration files bin\java and toolbar\bin\java to point to 32-

  • Indesign CS5 and Export to PDF

    Hi Group! Got a weird one here... I've searched high and low for this but, I have a user who i just recently upgraded to CS5 (company still on CS4 for internal reasons), and noticed a strange anomaly when exporting to PDF. For whatever reason, somewh