Did quick check, Yes, KEY(' ') can be used if what's inside is an encoded
key, but I assumed that by a plain 1 it was an unencoded ID value.On Wed, Jan 26, 2011 at 12:00 PM, Stephen Johnson <[email protected]>wrote: > Minor minor point :) I believe Ikai if you look at your posted code you > forgot the entity kind in your call to KEY, you used KEY('1') without any > entity kind stated. I also was assuming he was using datastore viewer which > I think he was. Or is this KEY('1') allowed without entity kind allowed?? > > > On Wed, Jan 26, 2011 at 11:48 AM, Ikai Lan (Google) < > [email protected] <ikai.l%[email protected]>> wrote: > >> Minor point: I posted Python code because you used the term "GQL". I >> assumed you were working with the datastore viewer - the code sample I >> posted should be valid there. >> >> Java code in JDO uses JDOQL. >> >> >> -- >> Ikai Lan >> Developer Programs Engineer, Google App Engine >> Blogger: http://googleappengine.blogspot.com >> Reddit: http://www.reddit.com/r/appengine >> Twitter: http://twitter.com/app_engine >> >> >> >> On Wed, Jan 26, 2011 at 10:07 AM, Stephen Johnson <[email protected] >> > wrote: >> >>> Also, check that the PMF.getPersistenceManager() returns a non-null >>> value. Perhaps with the changes you've been trying you don't have the >>> "transactions-optional" name in the config file matching the code. >>> >>> >>> On Wed, Jan 26, 2011 at 11:00 AM, Stephen Johnson < >>> [email protected]> wrote: >>> >>>> Well, you shouldn't be getting a NullPointerException if the entity is >>>> not found so something else is wrong. The correct exception would be >>>> JDOObjectNotFoundException. Are you sure the PageParameters parameters is >>>> not null or something else isn't null?? You don't use the 'a' variable in >>>> anyway in the try/catch that would cause the NullPointerException from what >>>> I see, so it has to be something else. >>>> >>>> >>>> On Wed, Jan 26, 2011 at 12:46 AM, hrbaer <[email protected]>wrote: >>>> >>>>> Ok guys, even if the gql query is running I'm still not able to port >>>>> this logic into my java class. >>>>> Maybe someone could have a look at my code and correct/refer to my >>>>> mistake(s): >>>>> >>>>> public GuestbookDetails( final PageParameters parameters ) throws >>>>> StringValueConversionException { >>>>> >>>>> PersistenceManager pm = PMF.getPersistenceManager(); >>>>> try { >>>>> Antwort a = pm.getObjectById( Antwort.class, >>>>> parameters.getAsLong( Constants.ID ) ); >>>>> } >>>>> catch (NullPointerException e) { >>>>> System.out.println( "No entity found." ); >>>>> } >>>>> >>>>> try { >>>>> Antwort a = pm.getObjectById( Antwort.class, >>>>> parameters.getLong( Constants.ID ) ); >>>>> } >>>>> catch (NullPointerException e) { >>>>> System.out.println( "No entity found." ); >>>>> } >>>>> >>>>> try { >>>>> Antwort a = pm.getObjectById( Antwort.class, >>>>> parameters.getString( Constants.ID ) ); >>>>> } >>>>> catch (NullPointerException e) { >>>>> System.out.println( "No entity found." ); >>>>> } >>>>> >>>>> try { >>>>> Antwort a = pm.getObjectById( Antwort.class, >>>>> parameters.getKey( Constants.ID ) ); >>>>> } >>>>> catch (NullPointerException e) { >>>>> System.out.println( "No entity found." ); >>>>> } >>>>> >>>>> Key k = KeyFactory.createKey( Antwort.class.getSimpleName(), >>>>> parameters.getLong( Constants.ID ) ); >>>>> try { >>>>> Antwort a = pm.getObjectById( Antwort.class, k >>>>> ); >>>>> } >>>>> catch (NullPointerException e) { >>>>> System.out.println( "No entity found." ); >>>>> } >>>>> } >>>>> >>>>> As you can imagine all querys result in the NullPointerException. >>>>> Parameters.getLong always returns me the value of "ID/Name" (e.g. >>>>> 1,2,3...). >>>>> >>>>> Apart from that I tried to fetch get my entities using the datastore >>>>> object. Yet without success: >>>>> >>>>> DatastoreService datastore = >>>>> DatastoreServiceFactory.getDatastoreService(); >>>>> Entity entity = null; >>>>> >>>>> try { >>>>> entity = datastore.get( k ); >>>>> } >>>>> catch (EntityNotFoundException e) { >>>>> System.out.println( "No entity found." ); >>>>> } >>>>> >>>>> And last but not least with a simple query: >>>>> >>>>> Query q = new Query( Constants.ANTWORT ); >>>>> q.addFilter( Constants.ID, FilterOperator.EQUAL, >>>>> parameters.getLong( Constants.ID ) ); >>>>> PreparedQuery pq = datastore.prepare(q); >>>>> Entity entity = pq.asIterator().next(); >>>>> (....) >>>>> >>>>> I think you already know the answer... >>>>> >>>>> Maybe someone is able to help me out. >>>>> Thanks in advance, >>>>> >>>>> -- >>>>> 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 >>>>> [email protected]. >>>>> To unsubscribe from this group, send email to >>>>> [email protected]<google-appengine-java%[email protected]> >>>>> . >>>>> 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 >>> [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<google-appengine-java%[email protected]> >>> . >>> 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 >> [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<google-appengine-java%[email protected]> >> . >> 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
