Beruflich Dokumente
Kultur Dokumente
Program Agenda
NoSQL Landscape Using NoSQL with ~JPA Using NoSQL with CDI
Public
NoSQL Landscape
Wild, Wild West
Defined by non-conformance to established RDMS paradigm
No SQL/queries, schemaless, weak referential integrity, no JOINs
Public
NoSQL Landscape
Adoption and Trends
Public
unnecessary Some parts of JPA fit NoSQL quite well Switching between NoSQL solutions difficult, particularly at various stages of application development Polyglot Persistence difficult NoSQL APIs generally low level, verbose
Public
EclipseLink NoSQL
Support JPA style access to NoSQL databases
Leverage non-relational database support for JCA
Metadata to identify NoSQL entities (e.g., @NoSQL) Support JPQL subset for each
Leverage whats available
Initial support for MongoDB and Oracle NoSQL More to come (Cassandra, HBase, CouchDB?) Support mixing relational and non-relational data in single
Public
ManyToOne, Version
Some concepts apply with some databases
JPQL, NamedNativeQuery
SequenceGenerator, TableGenerator
Public
Public
Public
Native Queries
query = entityManager.createNativeQuery( "db.ORDER.findOne({\"_id\":\"" + oid + "\"})",
Order.class); Order order = (Order) query.getSingleResult();
10
Public
https://github.com/m-reza-rahman/jpa-nosql-demo
11
Public
DataNucleus
Persistence layer behind Google App Engine (not JPA compliant) MongoDB, HBase, Neo4j
Kundera
Cassandra, MongoDB, HBase
Easy-Cassandra
Cassandra only
12
Public
Mophia
Annotations mirror JPA MongoDB specific
13
Public
CDI Overview
Next-generation dependency injection for Java EE
Synthesizes best ideas from Seam 2, Guice and Spring Many innovative features on its own right Focus on loose-coupling, Java-centric type-safety, annotations,
14
Public
@ConversationScoped, @ApplicationScoped
Lightweight Events
Event, @Observes
Interceptors/Decorators
@Interceptor, @Decorator
15
Public
interact with all NoSQL solutions in all use cases No real domain model Advanced, highly specialized features Unsupported NoSQL solutions Existing NoSQL API knowledge Most NoSQL APIs POJO based, easy to integrate natively via CDI
16
Public
https://github.com/m-reza-rahman/cdi-nosql-demo
17
Public
Summary
NoSQL market fast growing, but still immature and volatile Parts of JPA can apply well to NoSQL many such initiatives
including from Oracle Get involved! Most NoSQL APIs are good enough to integrate directly via CDI Should NoSQL be standardized in Java EE 8?
18
Public
Resources
EclipseLink NoSQL Examples
http://wiki.eclipse.org/EclipseLink/Examples/JPA/NoSQL
Oracle NoSQL
http://www.oracle.com/technetwork/database/database-
technologies/nosqldb
Hibernate OGM
http://www.hibernate.org/subprojects/ogm.html
DataNucleus
http://www.datanucleus.org
Kundera
https://github.com/impetus-opensource/Kundera/
Easy-Cassandra
https://github.com/otaviojava/Easy-Cassandra
19
Public
Resources
PlayOrm
https://github.com/deanhiller/playorm
Mophia
http://code.google.com/p/morphia/
Weld Docs
http://docs.jboss.org/weld/reference/latest/en-US/html/
20
Public