Re: Query using foreign objects

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Mon Feb 06 2006 - 13:10:42 EST

  • Next message: Cris Daniluk: "Re: queries in TransactionDelegate spawn new connection"

    Good point. This looks like a bug. Could you open a bug report for that?

    Thanks
    Andrus

    On Feb 6, 2006, at 12:00 PM, Dave Merrin wrote:

    > Hi,
    >
    > I've had a look through some more Cayenne documentation and some of
    > the
    > source code. I discovered CayenneDataObject validation. I see I can
    > add my
    > own validation but I don't just want to wipe out all of the cayenne
    > validation by not calling the super implementation.
    >
    > I see in the Cayenne implementation the ObjAttributes are iterated
    > through,
    > getting the mapped DbAttribute and checking if the attribute is
    > mandatory.
    > Could an additional check be done at this point to check if the
    > DbAttribute
    > is generated before adding it to the failure list?
    >
    > Here is the code I am on about:
    >
    > Map failedDbAttributes = null;
    >
    > Iterator attributes = objEntity.getAttributes().iterator();
    > while (attributes.hasNext()) {
    > ObjAttribute objAttribute = (ObjAttribute)
    > attributes.next();
    > DbAttribute dbAttribute = objAttribute.getDbAttribute();
    >
    > Object value =
    > this.readPropertyDirectly(objAttribute.getName());
    > if (dbAttribute.isMandatory()) {
    > ValidationFailure failure =
    > BeanValidationFailure.validateNotNull(
    > this,
    > objAttribute.getName(),
    > value);
    >
    > if (failure != null) {
    >
    > if (failedDbAttributes == null) {
    > failedDbAttributes = new HashMap();
    > }
    >
    > failedDbAttributes.put(dbAttribute.getName(),
    > failure);
    > continue;
    > }
    > }
    >
    > Cheers,
    >
    > Dave
    >> -----Original Message-----
    >> From: Dave Merrin [mailto:dmerri..pasystems.co.uk]
    >> Sent: 06 February 2006 09:04
    >> To: cayenne-use..bjectstyle.org
    >> Subject: Query using foreign objects
    >>
    >>
    >> Hi,
    >>
    >> I have tried mapping an ObjEntity to to DBEntity to allow me to
    >> use primary
    >> keys in an expression. This works for the expression but creates a
    >> new
    >> problem. My primary key is an identity hence it is generated by
    >> the database
    >> (and marked as isGenerated=true in the mapping file).
    >> Unfortunately mapping
    >> the ObjEntity to the DBEntity makes Cayenne think I have to set
    >> primary key
    >> when creating a new record in the database.
    >>
    >> Is this a bug?
    >>
    >> As an alternative I tried using the db: prefix but this didn't
    >> seem to work
    >> across relationships.
    >>
    >> Is there any way to create expressions using primary keys?
    >>
    >> Cheers,
    >>
    >> Dave



    This archive was generated by hypermail 2.0.0 : Mon Feb 06 2006 - 13:10:45 EST