Object-Relational Mapping (ORM) is one of the most complex issues to address in modern application architectures. JDX provides a simple, practical and robust solution to this important problem. JDX solves the tough problem of persistence for Java/J2EE/cloud applications by eliminating endless lines of JDBC/SQL code.
You don’t need to get bogged down with overly complex methodologies and over-arching frameworks. JDX ORM gives you the control you need to be an effective developer, helping you create more flexible and higher quality applications faster.
JDX Highlights:
Simple, Non-intrusive, and Flexible Design
- Simple concepts; easy development steps; quick learning curve
- No need to inherit from a base class or implement any special interfaces
- No static generation and maintenance of large amounts of messy code; dynamic mapping engine
- Easy evolution of object and relational models
- Flexible usage in any tier of an application – be it standalone, JSP/Servlet based or EJB based
Smart and Elegant Mapping Specification
- Declarative mapping specifications based on simple grammar
- Human-readable and easily comprehensible; no need to struggle with complex XML files
- Compact; most default mapping is automatically deduced; avoids verbosity
- Normalized and modular specification; no repetition of the same information
- Most mapping primitives are orthogonal to each other, avoiding unnecessary tight coupling and enabling easy evolution
- Allows cross-referencing of classes and collections no matter in which order their mappings have been defined
- Intuitive and flexible ways of mapping complex object structures
- Mappings for collections and relationships are defined at the object level, not at the relational level; makes it easier to understand and modify such mappings
- A mapping specification can optionally be stored in and accessed from the database
Support for Complex Object Modeling including Class Hierarchies and JSON Object Persistence
- Associative and aggregated relationships
- Persistence-by-reachability
- 1-to-1, 1-to-many, and many-to-many relationships
- Multiple options to store class-hierarchy objects
- Inline storage of attributes of a contained object
- Implicit attributes whose values are automatically initialized based on RELATIONSHIPs
- JSON Objects persistence
- Kotlin Objects persistence
- Polymorphic queries
Small Set of Simple and Flexible APIs
- Flexible query options – deep, shallow, and anything in-between. Supports loading of partial objects, sophisticated query predicates (including path-expressions), named queries, polymorphic queries, positional queries, and powerful object-streaming functionality.
- Aggregated operations
- Flexible APIs for Stored Procedures
- Support for instance callback methods, and
- Dynamic data routing
Lightweight and Optimized Mapping Engine
- Connection pooling
- Prepared statements
- Optimized SQL statements
- Minimal database trips
- Caching of metadata
- Compatible with Docker containers
Object Caching
- Caching options at individual class level for readonly objects to improve query performance
- Regular and LRU caches
- Cache can optionally be backed by clustered caches (e.g., Tangasol Coherence)
High-performance and Scalable Implementation
- Short code paths
- Optimistic concurrency control
- JDX can optionally run in server model
Powerful and Intuitive GUI Tools (JDXStudio and JDXDemo)
- Excellent packaging of all the needed functionality to simplify mapping configuration (defining and verifying OR-Mapping, creating and reverse-engineering database schema)
- Well-organized, color-coded panels for quick navigation
- Extensive online help available at every step of the way
- Easy to leverage legacy data for OR-Mapping
- Verify OR-Mapping against a live database
- OneClickRevelation™ provides instant and interactive insight into your data without a single line of programming
Nifty Components and Facilities to Simplify Development
- Utility components for pooling JDX handles
- Persistently unique sequence generators
- Object-viewing facilities
- Interactive development of queries using live data
- Support for instance callback methods
Works with Most Popular Databases, Existing Schema, and Application Servers
- Supports Oracle, SQL Server, DB2, Sybase, MySQL, Postgres, Pointbase, Interbase, JDataStore, HSQLDB, Cloudscape, Access, and JDBC data sources
- Easily reverse-engineer an object model from any existing relational schema
- Mapping-in-the-middle for existing object models and schema including stored procedures
- APIs for SQL bypass
- Works with WebLogic, Websphere, JRun, Tomcat, and other J2EE servers
- JNDI look up for data sources
- Integrates with external transaction managers
- Works with JSP, Servlets, EJBs and Standalone programs
Robust and Market-Proven Technology
- Progressively enhanced based on feedback from thousands of users over many years
- Proven enterprise-class technology being used in real-world applications
- Great customer testimonials
Fatster Development of Better Performing Applications
- More modular and better performing applications
- Increased programmer productivity
- Reduced risks and faster time-to-market