cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrey Razumovsky" <razumovsky.and...@gmail.com>
Subject Re: Accepting DOs from a Spring service
Date Tue, 07 Oct 2008 09:29:09 GMT
Hi Chris!

I think you encountered bug that has already been fixed [1]. You can try
last build instead of M4.
[1]. https://issues.apache.org/cayenne/browse/CAY-1081

2008/10/7, Chris Murphy <chris@strandz.org>:
>
>
> I have a Swing application that is being converted from using JDO to using
> Cayenne. It uses ROP and calls some Spring services. On the server
> WebApplicationContextFilter is being used. Some of the Spring services
> return more than just straightforward objects like Strings, they return DOs
> as well. I want these DOs to work in the application just like any other -
> so I want them to be part of the application's DataContext, and I want them
> to be of the client variety. My current best theory approach is for PK
> values to be returned rather than DOs, and for the method
> DataObjectUtils.objectForPk() to be used when a real DO is required. Is this
> an approach that ought to work?
>
> I'll concentrate on one of the types of DOs that comes across: Worker.
> Using the debugger I can see that the Workers are of the Cayenne server
> variety and still contain their PKs (but not much else). Thus I can test the
> above 'best theory' approach:
>
> This works fine:
>       int toReplacePK = DataObjectUtils.intPKForObject(
> (Persistent)toReplace);
>
> With the PK I would think from the doco that DataObjectUtils.objectForPK()
> would be able to give me the kind of DO I want.
>
> However this does not work:
>       result = DataObjectUtils.objectForPK(
>           objectContext,
>
> org.strandz.data.wombatrescue.objects.cayenne.client.Worker.class,
>           toReplacePK);
>
> This is what the error looks like:
> org.apache.cayenne.exp.ExpressionException: [v.3.0M4 May 18 2008 16:32:02]
> Can't resolve path component: [worker.jdoid].
>   at
> org.apache.cayenne.map.PathComponentIterator.invalidPathException(PathComponentIterator.java:146)
>
> The error is coming from the server. It makes sense that the object is
> being fetched from the server as it has not been queried. Should I be able
> to use DataObjectUtils.objectForPK() from an ROP client?
>
> thanks - Chris Murphy
>
> --
> Seaweed Software Pty Ltd,
> http://www.strandz.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message