[appengine-java] Re: Bulk writes to datastore

2009-09-15 Thread Richard

Hi Larry

> I am wondering about writing a Servlet that would form/multi-part
> upload large files and cache them in memcache then use the
> cron API to "trickle" persist them into the DS over time ...

I've been thinking about using something like this as well.  I think
you could likely cache the upload to the store because the limit here
seems to be mainly the amount of entities, not the size of one entity
(below 1mb).  I have e.g. 100/200k worth of data that I upload, but
because it's represented as a couple hundred entities it chokes.  I
could just upload the 93k and fire off a task (or cron job) that would
parse and insert the data offline.

At the very least, I plan to use the low-level api more.  The (very
useful) performance testing app http://gaejava.appspot.com/ shows
consistently higher CPU usage from JDO.  If this ever improves, that
app should show it.  Until then, low-level looks good.

Regards,
Richard
--~--~-~--~~~---~--~~
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-java@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
-~--~~~~--~~--~--~---



[appengine-java] Re: Tutorial for datastore with low-level api?

2009-10-21 Thread Richard

Thanks, Jason - you guys have been supporting the community
wonderfully.

I have a question:
I see there is a get(Iterable keys), that only returns entities
that exist (i.e. doesn't throw an exception when an entity isn't
found).  This looks like it could be really useful, e.g. as an IN
query.  Is there a 'reasonable' maximum to the amount of keys you can
put in?  E.g. 20, 100, 500?

Regards,
Richard

On Oct 19, 8:12 pm, "Jason (Google)"  wrote:
> Currently, most datastore examples use JDO, and the only official
> documentation available for the low-level API are the Javadocs that you
> linked to in your first post. It's a fairly straightforward API, however, so
> you shouldn't need too much training. Just get a reference to a
> DatastoreService instance and use it to get and retrieve Entity objects:
>
> DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
> ...
>
> If you have any specific questions or find any descriptions confusing,
> please let me know and I'll be happy to work through these issues with you.
>
> - Jason
>
> On Thu, Oct 15, 2009 at 1:45 PM, Iqbal Yusuf Dipu
> wrote:
>
>
>
> > Hi,
>
> > Is there any online reference material with some examples available
> > for low-level api with datastore in Java without using JDO/JPA? The
> > main app engine site has only reference to api doc for datastore.
>
> >http://code.google.com/appengine/docs/java/javadoc/com/google/appengi...
>
> > Thanks.
--~--~-~--~~~---~--~~
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-java@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
-~--~~~~--~~--~--~---



[appengine-java] Re: Tutorial for datastore with low-level api?

2009-10-21 Thread Richard

Hi Yasuo,

> The maximum number of entities in a batch put or batch delete is 500.
> The maximum number of entities in a batch get is 1000.

That's true, but in this case I'm assuming not all keys have entries
so I'll only get back the entities that exist. They keys that have no
associated entities will return nothing. So keys > entities, and
hopefully keys could > 1000.  Put in e.g. 1500 keys, get out 50
entities, providing me with a fast(er) IN search.

Regards,
Richard
--~--~-~--~~~---~--~~
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-java@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
-~--~~~~--~~--~--~---



[appengine-java] Re: SimpleDS: an alternative for Datastore persistence

2009-10-22 Thread Richard

Sounds good.  I also think I'll focus much of my attention on the low-
level API, so this could be very useful!

Regards,
Richard

On Oct 22, 11:37 am, Nacho Coloma  wrote:
> Hi all,
>
> We have been developing a persistence framework for the AppEngine
> Datastore based on the raw DatastoreService API. For our (simple)
> persistence case, both JDO and JPA were a bit overkill as we were
> spending a significant amount of time jumping through hoops to make
> our application roll, but at the same time the Datastore API was a too
> low-level solution to be usable.
>
> So we reinvented our wheel. In two days.
>
> SimpleDS is a light wrapper around the DatastoreService APIs that
> provide a simple interface for java persistent classes. It does not
> include fancy stuff or any super features, it's just the
> DatastoreService ported to a world where Java entities can be
> persisted directly (using a subset of JPA annotations).  This is _not_
> a JPA/JDO replacement, and will never be. But we have been using it
> for some weeks and are quite happy with it.
>
> Any kind of feedback from the AppEngine  community would be welcome.
> Before calling the typical "but we already have JPA/JDO!" argument,
> please notice the following:
>
> * There are lots of considerations in a relational database that do
> not apply to AppEngine. This allows a specific solution to be
> simplified big time. Just see the depth of your typical stack trace to
> understand what I am talking about.
> * Solutions can be designed for specific cases that are common
> practice in AppEngine but do not apply to a relational database. See,
> for example, saving entities with a parent instance.
> * Transactions also behave a bit differently, where a "one size fits
> all" approach would probably not be the best solution.
>
> To better ilustrate with an example, these are some typical tasks
> performed with SimpleDS:
>
> Retrieve instance:
> FooBar bar = entityManager.get(key);
>
> Transform from Google Datastore Entity to java and viceversa:
> Entity entity = entityManager.datastoreToJava(bar);
>
> Save generating a  primary key, with a parent instance:
> FooBar bar = new FooBar();
> entityManager.put(parentKey, bar);
>
> More can be seen here:http://code.google.com/p/simpleds/wiki/SimpleTasks
>
> Any discussion about the current API state is welcome. This entire
> thing was rolled in two days and tested in a couple of weeks so there
> should be some bugs in between.
>
> It is important to keep in mind the current list of limitations:
>
> * Only the Key class is a supported primary key.
> * IN and != are not supported (yet). I have big concerns about
> supporting this, performance-wise.
> * Relationships are not supported. You can use Keys and collections of
> Keys for that purpose.
> * Transactions are not yet included. We are not yet sure about how to
> proceed here.
>
> As I said, this is not conceived to become a feature-complete JPA
> replacement, so please don't treat it like that.
>
> Best regards,
>
> Nacho.
--~--~-~--~~~---~--~~
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-java@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
-~--~~~~--~~--~--~---



[appengine-java] Re: Tutorial for datastore with low-level api?

2009-10-22 Thread Richard

> You cannot specify more than 1000 keys in a batch get.
>
> If you specify more than 1000 keys in a batch get,
> you will encounter the following exception:
> java.lang.IllegalArgumentException: cannot get more than 1000 keys in
> a single call

Aha, thanks Yasuo.

Regards,
Richard
--~--~-~--~~~---~--~~
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-java@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
-~--~~~~--~~--~--~---



[appengine-java] Re: External MySQL

2009-10-22 Thread Richard

I think you'll need to build a web service in front of the MySQL db
and call it from GAE's urlfetch.  I don't see how you could connect
directly.

Regards,
Richard

On Oct 22, 7:54 am, seagull1  wrote:
> For my app, I need to access an external MySQL database and add data
> (this is a connection between my app and a project outside of my
> control). My app uses JDOs and all that what not.
>
> I see that java.sql is on the white list, but perhaps some other
> things are not (Drivers and ability to make eternal connections)
>
> So, is there a way for me to make this connection to the external
> MySQL database?
>
> Thank you for the help
--~--~-~--~~~---~--~~
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-java@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
-~--~~~~--~~--~--~---



[appengine-java] One to many with JPA

2009-12-16 Thread Richard
Hi guys,

  I try to persist a one to many relationship but I get the following
error (It's my first app):

Caused by: java.lang.IllegalStateException: Field
"fr.beasymptotic.bookmark.client.model.BookmarkUser.bookmarks"
contains a persistable object that isnt persistent, but the field
doesnt allow cascade-persist!


What's wrong here :

@Entity
public class Bookmark implements Serializable {
/**
 *
 */
private static final long serialVersionUID =
-5148690849535943792L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk",
value="true")
private String id;

@Basic
private String link;
@Basic
private String shortName;

...

}



@Entity
public class BookmarkUser implements Serializable {
/**
 *
 */
private static final long serialVersionUID =
-4970721952298475845L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Basic
private String userUIDFromGoogle;

@Basic
    private List bookmarks;
...

}

Thanks,
Richard

--

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.




[appengine-java] Re: Performance of Data Store

2009-12-16 Thread Richard
It's probably that expensive. There are many surprises when using the
datastore! I'd really like to get to grips with exactly what is
causing what performance issues because it still feels a bit
uncharted.

Possibilities:
Check if this speeds up if you call it a number of times in a row.
Your app might have to load. I'm finding that it unloads very quickly
now - a few minutes, whereas it seemed to take up to 20 min before. I
also feel like repeated calls of a similar kind seem to run faster.
When I turn logging onto "Info" level, I see a few exceptions when
some parts wake up, like queues. Those don't happen after the first
call.

How many 'columns' do your children have? Each of those have to be
indexed. You can specify that the datastore ignores some columns for
indexing. Do your children have list properties? If so, that expands
the indexes a lot.  Look at your data stats to see how much indexes
are taking up compared to data, which should hint at how much the
store is doing behind the scenes.

Regards,
Richard

On Dec 17, 7:40 am, Brian Hayward  wrote:
> Am I doing something wrong here?
>
> Parent class with an owned one-to-many relationship containing 30
> children. calling clear() on the collection and then makePersistent()
> on the parent was:
>
> 1646ms 5065cpu_ms 4560api_cpu_ms
>
> Is it really this expensive?  I have timing around the above two
> steps, my logs reported that part alone as 1552ms.
>
> Thanks,
> Brian

--

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.




[appengine-java] Re: serious java loader problem: "Hello world" killed for latency

2010-01-23 Thread Richard
Could either of you put up an update when you figure out what's
causing it?  Will watch the thread.

Regards,
Richard

-- 
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.



[appengine-java] Re: Question about inbound mail.

2010-01-23 Thread Richard
No idea, but if you're not getting any joy, maybe try at www.stackoverflow.com
- there should be a bit more motivation to help because it's points-
based.

Regards,
Richard

On Jan 14, 9:06 pm, Thanasis  wrote:
> Anyone, pls?
>
> On Jan 14, 9:18 am, Thanasis  wrote:
>
> > Hi all,
>
> > I guess my question is directed to Google Engineers - unless someone
> > has previous experience.
>
> > Hypothetical scenario:
>
> > My application gets an inbound email. GAE starts the specified mail-
> > handling servlet, but this is affected by the known "cold-start" delay
> > and timeouts.
>
> > The question is: what happens with the email?
>
> > Does GAE make another attempt to push the email back to the
> > application - possibly by recognizing that the exception thrown is not
> > application specific but GAE specific?
>
> > Or is the message lost?

-- 
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.



[appengine-java] Cold starts

2010-04-27 Thread Richard
My app has a *lot* of cold starts. Sometimes after 2 or 3 minutes,
which seems very aggressive. I've let it go, tried to be good and
waited for it to improve. Today I tried Pingdom and set it to a
minute. Instant improvement.

Googleistas, I really, really don't like doing that. I'll likely
switch it off because I'm trying to be a good citizen, but the system
is really driving bad behaviour - I imagine anyone who vaguely depends
on GAE for money is pinging the heck out of their apps. Any chance
we're going to get it sorted soon?

-- 
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.



[appengine-java] Re: Cold starts

2010-04-27 Thread Richard
Done, thanks. I had also starred the pay-for-instances but it was far
too noisy a topic!

On Apr 27, 7:16 pm, Jake  wrote:
> Star this?  :)
>
> http://code.google.com/p/googleappengine/issues/detail?id=2931
>
> On Apr 27, 4:33 am, Richard  wrote:
>
>
>
> > My app has a *lot* of cold starts. Sometimes after 2 or 3 minutes,
> > which seems very aggressive. I've let it go, tried to be good and
> > waited for it to improve. Today I tried Pingdom and set it to a
> > minute. Instant improvement.
>
> > Googleistas, I really, really don't like doing that. I'll likely
> > switch it off because I'm trying to be a good citizen, but the system
> > is really driving bad behaviour - I imagine anyone who vaguely depends
> > on GAE for money is pinging the heck out of their apps. Any chance
> > we're going to get it sorted soon?
>
> > --
> > 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 
> > athttp://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 
> athttp://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.



[appengine-java] Re: Inequality Filters Are Allowed On One Property Only

2010-05-01 Thread Richard
Try to combine x and y into a granular z, which can be checked
against.  E.g. if for a geographic query you'd combine lat & long to
get a hash with a reasonable granularity (whatever suits your
application). Pre-calculate those and save them to the store.  You
lose out the fine-grained inequality tests, but you gain a lot of
speed, which reduces your read costs hugely.

Richard

On May 1, 9:30 am, romesh soni  wrote:
> Hi Tristan,
> The solution you provided is the best one among of those which I have found
> so far. But this is not what I was looking for, my database is quite large
> and its will grow continuously to millions of records in time. But there
> will be only 1 matching record for my filter (x<=y and y>=z) If I try your
> suggested approach,  then I will have to scan all records in loop.(1000
> limitation)
>
> On Fri, Apr 30, 2010 at 6:58 PM, Romesh  wrote:
> > I have been trying to find a workaround for this limitation and spent
> > 2 days and read almost all blogs, discussion
> > groups., but can not find a solution to it. Has
> > any one able to find a way to handle this limitation? (The List
> > property solution doesn't work.)
>
> --
> 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 
> athttp://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.



[appengine-java] Font Rendering possible..? Maybe via Batik?

2010-10-07 Thread Richard
Hi,

the complete rendering pipeline in GAE for Java is on the blacklist,
cannot be used.

Is there a way to render Fonts and simple Shapes nonetheless? Maybe
via a complete non-native implementation? Maybe from Apache Harmony?

Is the Apache Batik Project compatible with Google Appengine? Could it
be used to do simple rendering (output PNG or SVG)? Did somebody ever
try this?

Thanks,
Richard

-- 
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.



Re: [appengine-java] An alternative to Objectify?

2011-12-07 Thread Richard Watson
Objectify runs fairly close to the datastore (ie if you understand the 
datastore, you won't be irritated by high-level abstractions) and it's 
dead-easy to take advantage of caching. I wouldn't even think about it, 
personally - I'd just use Objectify. For you, it's a small investment to 
try it out and you can always move to the low-level API without too much 
hassle.

There is likely to be some change between v3 and v4, so keep an eye on 
that. You could always just continue to use v3 if you don't want to upgrade.

Regards,
Richard

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine-java/-/McwzhZmE4G8J.
To post to this group, send email to google-appengine-java@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.



[appengine-java] Re: start stop server within eclipse

2012-02-20 Thread Richard Berger
I have a project that I created as a "Google Web Application"
project.  To "start my server", I select that project, right click,
and choose Run As -> Web Application.  To see the console, you can go
to the Window menu, choose Show View -> Console. Once the server has
started, the console will have a little red button allowing you to
stop the server.  (Note:  I am also running Helios.)

Hope this helps.
RB

On Feb 20, 7:15 pm, Jesper Nyqvist  wrote:
> I am using Eclipse Helios with the Google Plugin to develop my web page.
>
> But how do i start the server from Eclipse? It says it should show up in
> the console view but i can't find it.
> Is there anybody out there who could help me with this setup so i can start
> and stop my server from Eclipse?
>
> -Jesper

-- 
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-java@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.



[appengine-java] key.id - works for me, but is it the right way to go?

2010-10-26 Thread Richard Berger
Building a test application just to learn about GAE/J and things are
working fine (so far), but I am wondering if I am veering off in a
wrong direction.  Here is a simplified statement of the situation...

1. I have an entity class for an entity A
public class A implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Key key;

2. In a JSP page, I display a list of As, with a link to show the full
details of an "A".  This link is generated by the JSTL:
">

3. In the show servlet, I have:
  Long requestKey = Long.parseLong(req.getParameter("aKey"));
  Key aKey= KeyFactory.createKey("A", requestKey);
  A a = em.find(A.class, aKey);

As mentioned, it all works fine.  I have used this for both entities
with no parents (as above) and entities owned by a parent.  It just
seems odd to me that I am using something like ${a.key.id} rather than
${a.key}, but ${a.key} gives me the key.toString() value rather than
the KeyFactory.keyToString(key) value.  Also, since I am using JSTL, I
don't know how to use KeyFactory (without using a JSP scriptlet, which
I try (for no particular reason) to avoid.

Is the above ok/safe/fine - or am I abusing GAE and generating major
negative GAE karma which will come back to bite me in the future?  :)

Thanks!
RB

-- 
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.



[appengine-java] Simple cron job causes "This request caused a new process to be started for your application"

2010-10-29 Thread Richard Berger
Just testing to see if I can get a basic cron job working. Set up the
cron.xml, create a servlet, modify web.xml, deploy. And every two
minutes it runs and correctly prints the message I am logging:

W10-29 09:44PM 30.390
com.rb.commit1.DailyNotificationServlet doGet: This is our cron test


But (a) CPU usage is high (1400ms) and that is because my app code is
being loaded over and over as shown by the message that I also get
every two minutes:
I10-29 09:44PM 30.413
This request caused a new process to be started for your application,
and thus caused your application code to be loaded for the first time.
This request may thus take longer and use more CPU than a typical
request for your application.

My servlet code seems as simple as possible:


public class DailyNotificationServlet extends HttpServlet {

private static Logger logger =
Logger.getLogger(DailyNotificationServlet.class.getName());

public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {

logger.warning("This is our cron test");

}

}


Any idea of what I might be doing wrong?

Thanks so much,

RB

-- 
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.



[appengine-java] Re: Entity relationship designing - best practice

2010-12-21 Thread Richard Berger
Har_Shan:

I have been thinking about this topic also (but sadly, am not much of
an expert).  I am using Objectify as a layer on top of the Datastore.
Their website has a lot of good information on structuring data in the
Datastore - see http://code.google.com/p/objectify-appengine/wiki/Concepts?tm=6
).

There is also a good post on the various ways of handling 1 to many
relationships using Objectify.  What appeared to be something that
would work in your situation (which is like my situation) is what I
think of as the "database approach".  What I mean by that is, if you
had a 1 to many relationship, how would you model that in a database?
Specifically if 1 User can have Many Exams, you would have...

User table
* userId
* Other user fields

Exam table
* examId
* userId
* Other exam fields

So, turning this into GWT/Objectify, it would be

public class User  {
  @Id private Long id;
  // Other user fields
}

public class Exam{
  @Id private Long id;
  private Key userKey;
  // Other exam fields
}

The way to find all the exams for a particular user (represented by
"this") is:
  Objectify ofy = ObjectifyService.begin();
  Key userKey = new Key(User.class, this.id);
  List result = ofy.query(Exam.class).filter("userKey",
userKey).list();

This is explained (much better than I could do) at:
http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#Relationships

This may not solve all (or any) of your use cases, but it has worked
for me in my admittedly very limited usage.
Also check out:
http://groups.google.com/group/objectify-appengine/browse_frm/thread/102ede7022c7d7cf/30e6070900d5d523?lnk=gst&q=relationships#30e6070900d5d523

Enjoy,
RB




On Dec 19, 12:17 am, Matej  wrote:
> I am not expert in dataStore this is just what I would do:
> Add new entity with fields:
> ID OrderID UserID ExamID PageID QuestionID AnswerID
>
> Yes it is a lot of redundant data, but simple.
> When user starts new Exam, all data are created with AnswerID set to
> general answer unAnswer. After that you just update AnswerID.
>
> What are obstacle in design like this?
>
> Best, M

-- 
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.



[appengine-java] Are IdGeneratorStrategy.Identity values always unique.

2011-02-22 Thread Richard Wallis
If I use IdGeneratorStrategy.Identity to generate a long key field and
then delete the object associated with that key from the datastore.
Is it possible that the same key will be reused with a different
object of the same class? Or are keys always unique?

-- 
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-java@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.



[appengine-java] Re: Moderation enabled

2011-04-16 Thread Richard Fanning
Hi there,

Just about to post so hoping this will gain auto approval as a new member of 
the group.

Thanks

Rich

-- 
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-java@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.



[appengine-java] Redirection query on naked domain

2011-04-16 Thread Richard Fanning
Hi there,

I currently have an website deployed to app engine and have the domain on 
google apps (domain is registered with google and eNom are domain provider). 
I'm setting up my sitemap using google webmaster tools and noticed that my 
redirect seems to be a domain redirect rather than a URL redirect for the 
naked domain. Not sure I got the terminology correct there so i'll provide 
more detail

When I hit the following URL the robots.txt is displayed.

http://www.jungle-it.com/robots.txt

When I hit the following URL it directs to the sites homepage 
(http://www.jungle-it.com/)

http://jungle-it.com/robots.txt

I've read the named domains is not exactly supported but i'm not sure if 
this is what is not supported?

http://code.google.com/appengine/kb/general.html#naked_domain

Is there a way to correct this behaviour? Perhaps I can add a CNAME with the 
domain registrar? 

Note:  I'm using GAE/J

Thanks

Rich

-- 
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-java@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.



[appengine-java] Re: Mail to CC is delivered - but get bounce report

2009-08-20 Thread Richard Le Mesurier

Hello Chitgoks,

I don't know. I have no experience with J2EE except with GAE. It will
probably be best for you to do some googling on the Java Mail API -
there are lots of examples out there on using the Java Mail API.

My code is very simple use of the Java Mail API, so I'm sure you will
find something for your needs.

hth
Richard
--~--~-~--~~~---~--~~
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-java@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
-~--~~~~--~~--~--~---



[appengine-java] Re: Sending mail with the mail api

2009-09-09 Thread Richard Le Mesurier

Hi, I know it shouldn't make a difference if its Java or Grails, but
my code (also copied from the same tutorial) is still working today
(on the app server).

It took a matter of seconds for the mail to hit my inbox and thats
taking into account a slowish undersea cable connection to Africa...
i.e. it should be practically instantaneous.

But as I say - I'm using pure Java.

Richard

--~--~-~--~~~---~--~~
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-java@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
-~--~~~~--~~--~--~---



[appengine-java] Re: Sending mail with the mail api

2009-09-10 Thread Richard Le Mesurier

Hi, I have tried it both different ways - as you will see in the code
referenced on the link below:
http://groups.google.com/group/google-appengine-java/browse_thread/thread/fd16f0e378de26cd?hl=en

This is the other thread I was asking about the CC behaviour - but the
code still works and I still test it.
For testing, I switched the TO and CC address around - so one goes to
m...@gmail and the other to m...@mycompany.

Maybe try sending test to me... I'll tell you what I get.
(sorry if this is poor etiquette...)

hth
Richard
--~--~-~--~~~---~--~~
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-java@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
-~--~~~~--~~--~--~---



[appengine-java] Re: Regarding Error in Jsp Code

2009-09-14 Thread Richard Le Mesurier

Hi, dunno if this helps, but...
>   <%
>     if(entries.isEmpty()) {
>    %>
>    
is missing a "

Might help.
Ric
--~--~-~--~~~---~--~~
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-java@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
-~--~~~~--~~--~--~---