RE: SelectQuery with object parameter

From: Gentry, Michael \(Contractor\) ("Gentry,)
Date: Tue Sep 06 2005 - 16:35:16 EDT

  • Next message: Damir Bijuklic: "ordering inserts of rows into single table"

    Cayenne does need and use the PK when your query parameter is a
    CayenneDataObject subclass (instead of a string/etc). Let me go out on
    a limb and ask: does your object have multiple PKs? If not, could you
    post some of your query code?

    -----Original Message-----
    From: Gili [mailto:cowwo..bs.darktech.org]
    Sent: Tuesday, September 06, 2005 1:31 PM
    To: cayenne-use..bjectstyle.org
    Subject: Re: SelectQuery with object parameter

            I increased the logging level...

    13:29:25,516 INFO QueryLogger:421 - --- will run 1 query.
    13:29:25,516 INFO QueryLogger:377 - --- transaction started.
    13:29:25,531 INFO QueryLogger:315 - SELECT t0.clazz, t0.dataDigest,
    t0.id, t0.contentType, t0.data, t0.provider, t0.specification, t0.theme
    FROM image t0 WHERE (t0.theme = ?) AND (t0.clazz = ?) [bind:
    [desktopbeautifier.server.cayenne.DefaultTheme: Theme[id=1, name=null,
    childrenCount=0]], 'desktopbeautifier.server.database.DefaultImage'] -
    prepared in 15 ms.
    13:29:25,547 INFO QueryLogger:404 - *** error.

            Looks to me like Cayenne is expecting the Theme's primary key,
    and
    instead it's getting an entire DefaultTheme object. Not sure how to fix
    that though...

    Gili

    Gentry, Michael (Contractor) wrote:
    > Short answer, yes, you can pass a CayenneDataObject (subclass) as a
    > query parameter. There's not enough information there for me (at
    least)
    > to tell what the issue might be.
    >
    >
    > -----Original Message-----
    > From: Gili [mailto:cowwo..bs.darktech.org]
    > Sent: Tuesday, September 06, 2005 1:19 PM
    > To: cayenne-use..bjectstyle.org
    > Subject: SelectQuery with object parameter
    >
    >
    > Hi,
    >
    > I have a SelectQuery with a root of "DefaultImage", and
    > qualifier of
    > "theme = $theme". In my Java code I bind "theme" to a DefaultTheme,
    > which is a DataObject. Then when I try issueing the query I get this
    > exception:
    >
    > java.sql.SQLException: Cannot convert class
    > desktopbeautifier.server.cayenne.DefaultTheme to SQL type requested
    due
    > to java.lang.ClassCastException -
    > desktopbeautifier.server.cayenne.DefaultTheme
    >
    > The closest discussion I could find is
    >
    http://www.objectstyle.org/cayenne/lists/cayenne-user/2002/09/0009.html
    > but it doesn't look like anyone ever answered it. Am I doing something

    > wrong? Shouldn't I be able to pass a DataObject as a query parameter?
    >
    > Thank you,
    > Gili

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



    This archive was generated by hypermail 2.0.0 : Tue Sep 06 2005 - 16:35:21 EDT