Return-Path: Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: (qmail 26109 invoked from network); 19 Aug 2010 08:29:30 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 19 Aug 2010 08:29:30 -0000 Received: (qmail 88499 invoked by uid 500); 19 Aug 2010 08:29:29 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 88322 invoked by uid 500); 19 Aug 2010 08:29:26 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 88314 invoked by uid 99); 19 Aug 2010 08:29:25 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Aug 2010 08:29:25 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [203.199.18.82] (HELO mail1.impetus.co.in) (203.199.18.82) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Aug 2010 08:29:21 +0000 Received: from mail1.impetus.co.in ([192.168.100.28]) by mail1.impetus.co.in ([192.168.100.28]) with mapi; Thu, 19 Aug 2010 13:58:52 +0530 From: Animesh Kumar To: "user@cassandra.apache.org" Date: Thu, 19 Aug 2010 13:58:13 +0530 Subject: RE: kundera: Open source JPA 1.0 compliant ORM for Cassandra Thread-Topic: kundera: Open source JPA 1.0 compliant ORM for Cassandra Thread-Index: Acsxn2vBlLH6uRZERBe9L59KwOZzTANzeeaA Message-ID: <5ABFF8850215714CAAFF1081F7E4315DB67A8834DE@mail1.impetus.co.in> References: <4C53FD4B.5020707@javageneration.com> <8419CE074608E24FB834DB9D270C78D6E56150D24B@mail1.impetus.co.in> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Hi Jonathan, Glad that you liked the effort. Kundera team is constantly watching Cassand= ra developments to pick features up as soon as they become available, for e= xample, secondary indexes, schema generator support etc. I would like to highlight few important stuffs about Kundera: 1. Kundera has been architected so as to be able to use any existing Cassan= dra client library, Hector, Pelops whatever, in simple adaptor design forma= t. Kundera though supports Pelops only, however should anyone want to write= a custom adaptor for any of his favorite client libraries he can easily do= it. 2. Kundera - for now - uses Lucandra to store reverse-indexes into Cassandr= a itself. Support for Solr will be introduced very soon. 3. Kundera supports JPA defined relationships like, OneToOne, OneToMany, Ma= nyToOne and ManyToMany between concrete entity objects with full Cascade su= pport and Lazy/Eager loading strategies. This is achieved by storing foreig= n row-ids into holding entity's CF row. Kundera doesn't support entity embe= dding or entity inheritance yet, but they are in pipeline. 4. Kundera converts JPA queries to Lucene queries which run on Lucene index= es to fetch row-ids which are used to look-up data from Cassandra CFs. You = can also directly execute Lucene queries. This might have given you a better picture of Kundera, should you need more= information you can visit: http://kundera.googlecode.com Thanks, Animesh iLabs, Impetus -----Original Message----- From: Jonathan Ellis [mailto:jbellis@gmail.com] Sent: Sunday, August 01, 2010 11:01 PM To: user@cassandra.apache.org Subject: Re: kundera: Open source JPA 1.0 compliant ORM for Cassandra Glad to see this, and I hope you'll be able to take advantage of the secondary index features coming in 0.7. Supporting different lower-level "drivers" seems like wasted effort to me, = fwiw. On Sat, Jul 31, 2010 at 8:54 AM, Sanjay Sharma wrote: > Hi All, > > We are happy to announce and share a new ORM over Cassandra - kundera > > The project is Apache licensed and hosted at http://kundera.googlecode.co= m > > > > The project uses custom Cassandra Annotations and is fully JPA 1.0 > compliant. @ColumnFamily and @SuperColumnFamily are the main Cassandra > specific annotations. > > > > Search/Indexing is automatically included by using "Lucandra" and drives = the > JPA-QL query support. Use of Lucandra also enables users to write Lucene > queries along with JPA-QL queries. > > > > As per the main author of kundera - Animesh -" The idea behind Kundera is= to > make working with Cassandra drop-dead simple and fun. Kundera does not > reinvent the wheel by making another client library; rather it leverages = the > existing libraries and builds - on top of them - a wrap-around API to hel= p > developers do away with unnecessary boiler plate codes, and program a > neater-and-cleaner code that reduces code-complexity and improves quality= . > And above all, improves productivity." > > > > The current implementation uses the versatile "Pelops" library as the > underlying client API and plans are to add support for Hector and Thrift > clients as well. > > > > Here is a sample kundera Entity bean - > > @Entity > > @ColumnFamily(keyspace =3D "Keyspace1", family =3D "SimpleComment") > > public class SimpleComment { > > @Id > > private String id; > > @Column(name =3D "userId") > > private String userId; > > @Column(name =3D "comment") > > private String commentText; > > > > ...... > > } > > JPA queries are as simple as- > > Query query =3D entityManager.createQuery("SELECT c from SimpleCo= mment > c where userId=3D'me'"); > > List list =3D query.getResultList(); > > > > There is already support for Spring based persistence integration like th= e > good old Spring+Hibernate integration and is as simple as this- > > class=3D"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBe= an"> > > > > > > More examples are available in kundera's wiki and Animesh's blogs. The > spring integration example is here > > > > Regards, > > Sanjay Sharma > > iLabs, Impetus > > ________________________________ > Impetus is sponsoring 'Hadoop India User Group Meet Up'- a technology > un-conference on July 31, 2010 at Impetus Office, Noida. The event will s= hed > light on Hadoop technology and channelized efforts to develop an active > Hadoop community. > > Click http://www.impetus.com/ to know more. Follow our updates on > www.twitter.com/impetuscalling . > > > NOTE: This message may contain information that is confidential, > proprietary, privileged or otherwise protected by law. The message is > intended solely for the named addressee. If received in error, please > destroy and notify the sender. Any use of this email is prohibited when > received in error. Impetus does not represent, warrant and/or guarantee, > that the integrity of this communication has been maintained nor that the > communication is free of errors, virus, interception or interference. > -- Jonathan Ellis Project Chair, Apache Cassandra co-founder of Riptano, the source for professional Cassandra support http://riptano.com Impetus is sponsoring 'Hadoop India User Group Meet Up'- a technology un-co= nference on July 31, 2010 at Impetus Office, Noida. The event will shed lig= ht on Hadoop technology and channelized efforts to develop an active Hadoop= community. Click http://www.impetus.com/ to know more. Follow our updates on www.twitt= er.com/impetuscalling . NOTE: This message may contain information that is confidential, proprietar= y, privileged or otherwise protected by law. The message is intended solely= for the named addressee. If received in error, please destroy and notify t= he sender. Any use of this email is prohibited when received in error. Impe= tus does not represent, warrant and/or guarantee, that the integrity of thi= s communication has been maintained nor that the communication is free of e= rrors, virus, interception or interference.