Re: SelectQuery.queryWithParameters(ignoreMismatch)

From: Gili (cowwo..bs.darktech.org)
Date: Fri Sep 09 2005 - 11:55:39 EDT

  • Next message: Mike Kienenberger: "Re: SelectQuery.queryWithParameters(ignoreMismatch)"

            Well, I don't think this will affect your performance. Remember, I'd be
    using ignoreMismatch = false while you'd be using ignoreMismatch =
    true... The implementation for ignoreMismatch = true is identical to
    what it currently is for pruneMissing = true so you should see the same
    performance. As for using the constant FOO approach it's really not
    enough. In my case I was sending in parameters to the query whereas its
    qualifier was completely empty. Debugging/testing will help, to be sure,
    but you'd find the error *much* faster if Cayenne would warn you about
    it (with ignoreMismatch = false). So, do you mind if I open up a RFE for
    this and send in some patches?

    Gili

    Gentry, Michael (Contractor) wrote:
    > I love the pruneMissing feature, personally. I could see perhaps
    > wanting Cayenne to warn you (via a log message or something) if you
    > provide Map entries which don't fit into the expression (in case of
    > typos). This would slow it down a tad, though.
    >
    > Alternatively, you could also create constant strings to help out.
    >
    > public fooMethod()
    > {
    > final String FOO = "myFooVariable";
    > ...
    > }
    >
    > Then just reference FOO instead of "myFooVariable" whenever you need to
    > use it. Of course, you'd have to be careful to include the $ in your
    > expression, but that's what debugging and testing is for, right? :-)
    >
    > /dev/mrg
    >
    >
    >
    > -----Original Message-----
    > From: Gili [mailto:cowwo..bs.darktech.org]
    > Sent: Thursday, September 08, 2005 11:36 PM
    > To: cayenne-deve..bjectstyle.org
    > Subject: SelectQuery.queryWithParameters(ignoreMismatch)
    >
    >
    > Hi,
    >
    > I'd like to propose we modify
    >
    > queryWithParameters(java.util.Map parameters, boolean pruneMissing)
    >
    > to
    >
    > queryWithParameters(java.util.Map parameters, boolean ignoreMismatch)
    >
    > where "ignoreMismatch" is the equivilent of "pruneMissing" as
    > well as
    > ignoring when the user provides too many parameters.
    >
    > I bring this up because I ran into a situation where I was
    > running a
    > SelectQuery and it was consistently failing to behave as I expected.
    > After further investigation I noticed that my mapped SelectQuery's
    > qualifier string was incorrect. Something as simple as a typo in the
    > qualifier string is enough to cause the query to fail silently.
    >
    > We should be able to execute in some sort of "strict mode" where
    >
    > Cayenne throws an exception if too little or too many parameters are
    > provided (frankly, I'd love for strict mode to be the default -- right
    > now the opposite is true). I'm willing to work on this if you guys okay
    > this change. What do you think?
    >
    > Gili

    -- 
    http://www.desktopbeautifier.com/
    



    This archive was generated by hypermail 2.0.0 : Fri Sep 09 2005 - 11:55:39 EDT