OpenJPA
  1. OpenJPA
  2. OPENJPA-565

Duplicate @NamedQuery terminates subsequent @NameQuery definitions in @NamedQueries

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.0.2, 1.0.3, 1.1.0
    • Fix Version/s: 1.0.3, 1.1.0, 1.2.0
    • Component/s: kernel
    • Labels:
      None

      Description

      If duplicate @NameQuery is defined in @NameQueries as in,

      @NamedQueries (
      { @NamedQuery(name="findBasicAByBasicBid", query="select t.entitya from BasicB t WHERE t.id = ?1" ),
      @NamedQuery(name="findBasicAByBasicBid", query="select t.entitya from BasicB t WHERE t.id = ?1"),
      @NamedQuery(name="findInhAddress", query="select t from InhAddress t)
      })

      a warning message is posted in the log

      openjpa.MetaData - Found duplicate query "findBasicAByBasicBid" in "class com.ibm.ws.query.pdq.entities.TypeTestBean". Ignoring.

      Although the message said the query is ignored, it actually terminates the detection of the remaining NamedQuery definitions.

      Albert Lee.

        Activity

        Hide
        Albert Lee added a comment -

        Clarification:

        If query.name() is found in the repository cache, the "before patch" behavior is posting a "ignore" warning message and stop parsing the remaining @NamedQuery in the queries input parameter. Basically it is an no-op. The "after patch" behavior remains the same for @NamedQuery, since there is only one entry in the queries list. The only change in behavior is for @NamedQueries. If a duplicate NameQuery is found, it used to stop parsing the remaining @NamedQuery. After the patch, it will ignore the duplicated entry and continue to parse the remaining entries in the queries input list.

        Albert Lee.

        Show
        Albert Lee added a comment - Clarification: If query.name() is found in the repository cache, the "before patch" behavior is posting a "ignore" warning message and stop parsing the remaining @NamedQuery in the queries input parameter. Basically it is an no-op. The "after patch" behavior remains the same for @NamedQuery, since there is only one entry in the queries list. The only change in behavior is for @NamedQueries. If a duplicate NameQuery is found, it used to stop parsing the remaining @NamedQuery. After the patch, it will ignore the duplicated entry and continue to parse the remaining entries in the queries input list. Albert Lee.

          People

          • Assignee:
            Albert Lee
            Reporter:
            Albert Lee
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development