I did more or less the same thing for the same reasons, and with the same
happy result.The only difference for me was instead of annotations, I
generate my model from an RDBMS. This way I know I can port my app to an
RDBMS world should GAE ever go the same way as Google Notebook.


On Thu, Oct 22, 2009 at 11:43 AM, Richard <richard.wat...@gmail.com> wrote:

>
> 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 <icol...@gmail.com> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to