I would just use the ObjectId

> On 15 Feb 2017, at 16:45, Hugi Thordarson <[email protected]> wrote:
> 
> It can be useful in some cases—one example is if you want to be able to pass 
> objects around in an API without triggering a DB fetch unless they are 
> actually used.
> 
> Cheers,
> - hugi
> 
> 
>> On 15. feb. 2017, at 15:28, Amedeo Mantica <[email protected]> wrote:
>> 
>> no worries, but I cannot understand your goal, why do you want to get the 
>> fault ?
>> 
>>> On 15 Feb 2017, at 16:25, Hugi Thordarson <[email protected]> wrote:
>>> 
>>> Thanks Ken, but the immediate fetch performed by Cayenne.objectForPk is 
>>> precisely what I’d like to avoid.
>>> 
>>> Cheers,
>>> - hugi
>>> 
>>> S: Amedeo, sorry about calling you “Amadeo” in my last post. I have been 
>>> properly lambasted.
>>> 
>>> 
>>>> On 15. feb. 2017, at 15:20, Ken Anderson <[email protected]> 
>>>> wrote:
>>>> 
>>>> I do this:
>>>> 
>>>> dataObject = (DataObject) Cayenne.objectForPK(getObjectContext(), 
>>>> MyEntity.class, oid);
>>>> 
>>>> But it will do the fetch if it’s not already in cache.
>>>> 
>>>> Ken
>>>> 
>>>> Ken Anderson
>>>> CTO Amphora, Inc.
>>>> Mobile:   +1 914 262 8540
>>>> 
>>>> 
>>>> 
>>>> www.amphorainc.com <http://www.amphorainc.com/>
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On 2/15/17, 9:59 AM, "Hugi Thordarson" <[email protected]> wrote:
>>>> 
>>>> Thanks Amadeo, but I ended up creating a method that looks like this. It 
>>>> would be nice to get some feedback on it, if I’m violating any Cayenne 
>>>> Commandments.
>>>> 
>>>> /**
>>>>  * @return An existing object or fault if registered with the OC, 
>>>> otherwise creates a new hollow object based on the given ObjectId.
>>>>  */
>>>> public static Persistent faultForObjectId( ObjectContext oc, ObjectId 
>>>> objectId ) {
>>>> Persistent object = (Persistent) oc.getGraphManager().getNode( objectId );
>>>> 
>>>> if( object == null ) {
>>>> ClassDescriptor descriptor = 
>>>> oc.getEntityResolver().getClassDescriptor(objectId.getEntityName());
>>>> 
>>>> object = (Persistent) descriptor.createObject();
>>>> 
>>>> object.setPersistenceState(PersistenceState.HOLLOW);
>>>> object.setObjectContext(oc);
>>>> object.setObjectId(objectId);
>>>> 
>>>> oc.getGraphManager().registerNode(objectId, object);
>>>> }
>>>> 
>>>> return object;
>>>> }
>>>> 
>>>> Cheers,
>>>> - hugi
>>>> 
>>>> 
>>>>> On 15. feb. 2017, at 14:41, Amedeo Mantica <[email protected]> wrote:
>>>>> 
>>>>> may be you want invalidateObject ?
>>>>> 
>>>>>> On 15 Feb 2017, at 14:15, Hugi Thordarson <[email protected]> wrote:
>>>>>> 
>>>>>> Hi all,
>>>>>> I need to get a fault for an ObjectId from an ObjectContext. How would I 
>>>>>> do this?
>>>>>> 
>>>>>> I don’t see any public API for this—the implementation of createFault in 
>>>>>> CayenneContext seems to get me halfway there, but it will not return an 
>>>>>> existing fault, only create new ones.
>>>>>> 
>>>>>> Cheers,
>>>>>> - hugi
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> Confidentiality Notice: This e-mail and accompanying documents contain 
>>>> confidential information intended for a specific individual and purpose. 
>>>> This e-mailed information is private and protected by law. If you are not 
>>>> the intended recipient, you are hereby notified that any disclosure, 
>>>> copying, or distribution, or the taking of any action based on the 
>>>> contents of this information, is strictly prohibited.
>>> 
>> 
> 

Reply via email to