Reladomo is an enterprise grade object-relational mapping framework for Java.
Java XSLT HTML JavaScript CSS Shell
Clone or download
Latest commit 9d3174e Jul 2, 2018
Permalink
Failed to load latest commit information.
build use http for repo Jul 2, 2018
dco prep 17.0.2 release May 10, 2018
idesupport Initial release of Reladomo Sep 12, 2016
libboot/src/main/java/org/libboot Initial release of Reladomo Sep 12, 2016
licenses Initial release of Reladomo Sep 12, 2016
reladomo/src TXRollback Jul 1, 2018
reladomogen/src/main better error message during code generation Jun 3, 2018
reladomogenutil/src Replace GSC impl with EC impl. covered by: hiroshi_ito.dco Mar 1, 2018
reladomogs/src/main/java/com/gs Replace GSC impl with EC impl. covered by: hiroshi_ito.dco Mar 1, 2018
reladomogsi/src Initial release of Reladomo Sep 12, 2016
reladomoserial/src Replace GSC impl with EC impl. covered by: hiroshi_ito.dco Mar 1, 2018
reladomoui/src/main Initial release of Reladomo Sep 12, 2016
reladomoxa/src minor fixes and cleanup for EC integration Mar 2, 2018
samples/reladomo-sample-simple Upgrade sample project to use Reladomo 17.0.1. covered by: hiroshi_it… Apr 10, 2018
.gitignore Initial gson/jackson implementation May 25, 2017
.travis.yml prep 17.0.0 release Mar 2, 2018
BUILD.md Contribution and build documentation. (#33) Feb 10, 2017
CHANGELOG.md prep 17.0.2 release May 10, 2018
CONTRIBUTING.md Contribution and build documentation. (#33) Feb 10, 2017
CONTRIBUTOR_COVENANT.md Contribution and build documentation. (#33) Feb 10, 2017
LICENSE.txt Initial release of Reladomo Sep 12, 2016
NOTICE.txt New module: XA integration with a JMS message loop Feb 6, 2018
README.md prepare 16.5.0 release Jul 27, 2017

README.md

Reladomo

What is it?

Reladomo is an object-relational mapping (ORM) framework for Java with the following enterprise features:

  • Strongly typed compile-time checked query language
  • Bi-temporal chaining
  • Transparent multi-schema support
  • Full support for unit-testable code
  • See the documentation for more detail.

What can I do with it?

  • Model data as objects with meaningful relationships between them
  • Define classes and relationships using simple XML files
  • Traverse, query, fetch, and update graphs of objects in an idiomatic object-oriented way
  • Manage bi-temporal data using built-in methods
  • Define, create, query, and update data that has both business date and processing date axes
  • Maintain complete and accurate audit history of changes efficiently
  • Answer as-of questions such as "what did this object look like at the end of last quarter"
  • Build applications as diverse as interactive web-apps to batch-processing
  • Leverage transactions and batch operations to support high-performance throughput
  • Detach objects to allow users to change data off-line
  • Write database vendor-independent code

Detailed feature list

  • Strongly typed compile-time checked query language
  • Audit-only, Business time-series only, and Bi-temporal chaining
  • Transparent multi-schema support (partition data across many databases)
  • Object-oriented batch operations
  • Flexible object relationship inflation
  • Detached objects (allow data to be changed independently (a.k.a. delayed edit functionality) of the DB and then pushed (or reset) as and when required) - useful when users are editing data in a GUI form
  • Multi-Threaded matcher Loader (MTLoader) is a high-performance pattern for merging changes from another source (file, feed, other DB, etc.) to your existing DB data. By design it is flexible/customizable and re-runnable
  • Tunable caching by object type - partial, full, full off-heap
  • Available meta-data - enables higher-level programming paradigms
  • Multi-tier operation - obviates the need for direct DB access from client-side apps, enables better connection sharing, with no code changes required
  • Full support for unit-testable code
  • Databases supported include: Sybase (ASE & IQ), DB2, Oracle, Postgres, MS-SQL, H2, Derby, "generic" ...

Sample Project

To help getting started with Reladomo, a simple project is available with maven and gradle build set-up.

Prerequisite: install maven or gradle.

git clone https://github.com/goldmansachs/reladomo.git
cd samples/reladomo-sample-simple

Maven

mvn clean install

Gradle

gradle clean build

Once build is successful, run src/main/java/sample/HelloReladomoApp to see how it behaves.

Documentation

Documentation is available online and also included within the Reladomo Javadoc jar file. Extract the jar file and refer to the docs below.

Reference Description File Path
Tutorial This tutorial demonstrates the necessary steps to get your Reladomo project started. userguide/ReladomoTutorial.html
FAQ Reladomo FAQ mithrafaq/ReladomoFaq.html
Reladomo Test Resource This document explains the steps required to use Reladomo objects in unit tests. mithraTestResource/ReladomoTestResource.html
Reladomo Notification When you have multiple JVMs connecting to a DB via Reladomo, you need to keep each JVM up-to-date with changes made by any of the other JVMs. Reladomo Notification is the primary mechanism for achieving this and keeping each JVMs Reladomo cache fresh. notification/Notification.html
Reladomo Primary Key Generator Primary key generator is an optional feature in Reladomo that allows Reladomo objects to declare how the primary key is going to be generated. primaryKeyGenerator/PrimaryKeyGenerator.html
Reladomo Database Definition Generators Database definition language (DDL) file generation is an optional feature in Reladomo that allows users to generate scripts to create tables, indices and foreign keys from the Reladomo object definition XML files. mithraddl/ReladomoDdlGenerator.html
Reladomo Object XML Generator To expedite the creation of object XML files from existing schema, an object XML file generator has been created. It connects directly to a database, retrieving a list of the existing tables and generating object XML files that appropriately map to these tables. objectxmlgenerator/Generator.html
Visualize Domain Model Using Reladomo Metadata When a persistent set of objects is specified in Reladomo metadata, the objects can be visualized. The output can be used as documentation, or simply browsed through to gain understanding of the domain. visualization/ReladomoVisualization.html
Reladomo Architecture Reladomo internal architecture. architecture/ReladomoInternalArchitecture.html
Presentations Reladomo presentation materials. presentations

Acquiring Reladomo