Looks nice. Any chance you'd like to dotae your work to Cayenne and
work with Cayenne developers to package it in a form suitable for
inclusion in the project?
Thanks
Andrus
On Oct 9, 2007, at 3:21 PM, David Marko wrote:
Hello,
I like a ROR ActiveRecord a lot and I decided to create a special
interface for
Cayenne to let me work easier in most cases. I borrowed some ideas
and created a
wrapper for Apache Cayenne. Instead a common DAO like scenario of
using services
for each model, I can now use one EntityManager that serves for all
models.
The solution requires Java 5 as generics and some other features
are beeing
used. Here are just a few code snippets of how it can be used.
Syntax examples:
EntityManager em;
// create and save object
Contact contact=em.create(Contact.class);
em.saveChanges();
// find object by id
Contact contact=em.findById(Contact.class, id);
// find object by property
Contact contact=em.findFirstByProperty(Contact.class, "username",
form.getFieldValue("username"));
// find many objects by property
List contacts=em.findAllByProperty(Contact.class, "subdomain.name",
"subdomain");
// find objects based on user defined query
List contacts=em.findAllByQuery(Contact.class,
Query.select().where("subdomain = $subdomain and age
> $age")
.param("subdomain", "agh")
.param("age", 18)
.order("lastname",true)
.offset(200)
.limit(10)
.include(Contact.ROLE_ARRAY_PROPERTY));
// count items per invoice
List counts=em.count(Item.class, "invoice_id")
Its just a special API interface that let you work with Apache
Cayenne in very
easy way. Of course there is still a place for DAO for more
advanced situations.
Is anyone else working on some similar approach? I would like to share
experiences/ideas.
David