-
Notifications
You must be signed in to change notification settings - Fork 233
Concepts
- Entity classes must be annotated with @Entity
- Entity and embeddable classes must have a default no-argument constructor.
- Each entity must have a field annotated with @Id. This will be persisted as row key.
- There must be 1 and only 1 @Id per entity.
- Primary Key and Column fields type must be according to supported data types.
- All fields annotated with @Embedded and @ElementCollection are stored within the table. e.g. Super column(s)/User Defined Type(s) in cassandra and nested document(s) in MongoDB.
- Fields annotated with @Embedded and @ElementCollection must be a class annotated with @Embeddable with their class definition. (The JPA way!)
- Relationship entities annotated with @OneToOne, @OneToMany etc must be another entity class. (All above rules apply to them). They are stored as separate tables and foreign keys are maintained by kundera. (we'll get to that later)
Kundera does not add any new annotation to the JPA set of annotations. Rather, it gives new meaning to existing ones so that:
-
The time to get started with Kundera is very less and you can journey ahead with Kundera, the usual JPA-way.
-
There is a uniformity in annotation set across all data-stores
-
Some major annotations used by Kundera:
-
javax.persistence.Entity
-
javax.persistence.Table
-
javax.persistence.Id
-
javax.persistence.Column
-
javax.persistence.Embedded
-
javax.persistence.ElementCollection
-
javax.persistence.CollectionTable
-
javax.persistence.Embeddable
-
javax.persistence.OneToOne
-
javax.persistence.OneToMany
-
javax.persistence.ManyToOne
-
javax.persistence.ManyToMany
-
javax.persistence.JoinColumn
...and so on.
-
-
Here is a graphical representation of what different annotations map to your datastore terminology.
-
Datastores Supported
- Releases
-
Architecture
-
Concepts
-
Getting Started in 5 minutes
-
Features
- Object Mapper
- Polyglot Persistence
- Queries Support
- JPQL (JPA Query Language)
- Native Queries
- Batch insert update
- Schema Generation
- Primary Key Auto generation
- Transaction Management
- REST Based Access
- Geospatial Persistence and Queries
- Graph Database Support
-
Composite Keys
-
No hard annotation for schema
-
Support for Mapped superclass
-
Object to NoSQL Data Mapping
-
Cassandra's User Defined Types and Indexes on Collections
-
Support for aggregation
- Scalar Queries over Cassandra
- Connection pooling using Kundera Cassandra
- Configuration
-
Kundera with Couchdb
-
Kundera with Elasticsearch
-
Kundera with HBase
-
Kundera with Kudu
-
Kundera with RethinkDB
-
Kundera with MongoDB
-
Kundera with OracleNoSQL
-
Kundera with Redis
-
Kundera with Spark
-
Extend Kundera
- Sample Codes and Examples
-
Blogs and Articles
-
Tutorials
* Kundera with Openshift
* Kundera with Play Framework
* Kundera with GWT
* Kundera with JBoss
* Kundera with Spring
-
Performance
-
Troubleshooting
-
FAQ
- Production deployments
- Feedback