I don't really have to do like that. Your solution is more clean and I will
use it. Thanks.
But for learning purpose, I've used some others methods.
I don't know why i can't update a children reference per another.
In fact, the new object is in the datastore. When I manually delete the
first reference, the parent now refer his new children. Weird.

2011/1/4 Stephen Johnson <onepagewo...@gmail.com>

> Why do you have to delete the location entity? Why not just update the
> current location entity with the new coordinates? That would be much
> more efficient.
>
>
> On Tue, Jan 4, 2011 at 10:20 AM, yoyo <yoyomo...@gmail.com> wrote:
>
>> The update still don't works. I give up.
>>
>> I use the "@Persistent(dependent = "true")" and add the delete instruction
>> when I update the user location, in a transaction.
>> Now it works, but I think it's not very clean/efficient.
>>
>> Have a nice day.
>>
>>  public void updateUserLocation(String username, Location newLocation) {
>>  PersistenceManager pm = PMF.getPersistenceManager();
>> Transaction tx = pm.currentTransaction();
>> try {
>>
>>    // Get the user and update the location
>>
>>    tx.begin();
>>     POJOUser user = pm.getObjectById(POJOUser.class, username);
>>    pm.deletePersistent(user.getLastLocation());
>>    user.setLastLocation(new POJOLocation(newLocation));
>>    tx.commit();
>>
>> } catch (JDOObjectNotFoundException ex) {
>>
>> } finally {
>>
>>    if (tx.isActive()) {
>> tx.rollback();
>>    }
>>    pm.close();
>> }
>>     }
>>
>>  @PersistenceCapable
>> public class POJOUser {
>>
>>     /** Primary key */
>>     @PrimaryKey
>>     @Persistent
>>     private String key = null;
>>
>>     /** Username */
>>     @Persistent
>>     private String username = null;
>>
>>     /** Password */
>>     @Persistent
>>     private String password = null;
>>
>>     /** The last location of the user */
>>     @Persistent(dependent = "true")
>>     private POJOLocation lastLocation = null;
>>      ...
>> }
>>
>>  @PersistenceCapable
>> public class POJOLocation implements Location {
>>
>>     /** Primary key */
>>     @PrimaryKey
>>     @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
>>     private Key key = null;
>>
>>     /** X */
>>     @Persistent
>>     private Double x = null;
>>
>>     /** Y */
>>     @Persistent
>>     private Double y = null;
>>     ....
>> }
>>
>>
>>   --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine for Java" group.
>> To post to this group, send email to
>> google-appengine-j...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine-java?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to
> google-appengine-j...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to