Skip to content
This repository

A JPA implementation for Apache Cassandra using the Hector client

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 .externalToolBuilders
Octocat-spinner-32 eclipse-tools
Octocat-spinner-32 lib
Octocat-spinner-32 src
Octocat-spinner-32 .gitignore
Octocat-spinner-32 README.markdown
Octocat-spinner-32 pom.xml
README.markdown

A JPA implementation for Apache Cassandra.

This release is only compatible with 0.8.1 forward. Cassandra now natively supports DynamicComposites.

Notices

As of version hector-jpa-0.8.7-1, the secondary indexing is incompabile with previous revisions. This is due to a bug in the row key construction that could potentially result in 2 indexes sharing a row. This issue has been resolved, but has changed the row key for secondary indexing. In order to rebuild the indexes, each entity will need to be loaded and re-saved (merge). This can be done using the hector KeyIterator object to load each entity row.

What this plugin supports

  • Direct field to column mapping

  • One-To-* Ordered and Unordered Collections

  • Many-To-* Ordered and Unordered Collections
  • Entity cascading based on cascade behavior
  • Inerhitance
  • Basic Secondary indexing with inheritance

What this plugin does not support

  • OR query clauses
  • IN and other query apis currently unsupported by Cassandra

Roadmap

As cassandra matures, this plugin will as well. Below is the roadmap for these features

  • Continue working with OpenJPA to make this part of the Open JPA Core
  • Convert client from Hector Thrift to CQL JDBC compliant driver
  • Remove client side composite row secondary indexing and use the Distributed Lucene Index. This depends on this issue. https://issues.apache.org/jira/browse/CASSANDRA-2915. Vote for it please.

Querying

Querying requires the user to define secondary indexes on Entities. See the UserDateRange and Sale classes in the test cases for examples. This plugin requires build time enhancement. This is due to the startup time analysis for inheritance in the query engine. As CQL improves, this limitation can be removed.

Something went wrong with that request. Please try again.