All Projects → goldmansachs → Reladomo

goldmansachs / Reladomo

Licence: apache-2.0
Reladomo is an enterprise grade object-relational mapping framework for Java.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Reladomo

Freezer
A simple & fluent Android ORM, how can it be easier ? RxJava2 compatible
Stars: ✭ 326 (-2.98%)
Mutual labels:  orm, database
Orm
ORM with clean object design, smart relationship loading and powerful collections.
Stars: ✭ 266 (-20.83%)
Mutual labels:  orm, database
Python For Entrepreneurs Course Demos
Contains all the "handout" materials for Talk Python's Python for Entrepreneurs course. This includes notes and the final version of the website code.
Stars: ✭ 247 (-26.49%)
Mutual labels:  orm, database
Sparrow
A simple database toolkit for PHP
Stars: ✭ 236 (-29.76%)
Mutual labels:  orm, database
Prisma1
💾 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL & MongoDB)
Stars: ✭ 16,851 (+4915.18%)
Mutual labels:  orm, database
Granite
ORM Model with Adapters for mysql, pg, sqlite in the Crystal Language.
Stars: ✭ 238 (-29.17%)
Mutual labels:  orm, database
Wetland
A Node.js ORM, mapping-based. Works with MySQL, PostgreSQL, SQLite and more.
Stars: ✭ 261 (-22.32%)
Mutual labels:  orm, database
Piccolo
A fast, user friendly ORM and query builder which supports asyncio.
Stars: ✭ 219 (-34.82%)
Mutual labels:  orm, database
Think Orm
Think ORM——the PHP Database&ORM Framework
Stars: ✭ 303 (-9.82%)
Mutual labels:  orm, database
Node Orm2
Object Relational Mapping
Stars: ✭ 3,063 (+811.61%)
Mutual labels:  orm, database
Db
Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.
Stars: ✭ 2,832 (+742.86%)
Mutual labels:  orm, database
Rel
💎 Modern Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API
Stars: ✭ 317 (-5.65%)
Mutual labels:  orm, database
Clear
Advanced ORM between postgreSQL and Crystal
Stars: ✭ 220 (-34.52%)
Mutual labels:  orm, database
Sqlhelper
SQL Tools ( Dialect, Pagination, DDL dump, UrlParser, SqlStatementParser, WallFilter, BatchExecutor for Test) based Java. it is easy to integration into any ORM frameworks
Stars: ✭ 242 (-27.98%)
Mutual labels:  orm, database
Ronin
Ronin is a Ruby platform for vulnerability research and exploit development. Ronin allows for the rapid development and distribution of code, Exploits or Payloads, Scanners, etc, via Repositories.
Stars: ✭ 220 (-34.52%)
Mutual labels:  orm, database
Mikro Orm
TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite databases.
Stars: ✭ 3,874 (+1052.98%)
Mutual labels:  orm, database
Sequelize Auto
Automatically generate bare sequelize models from your database.
Stars: ✭ 2,494 (+642.26%)
Mutual labels:  orm, database
Rustorm
an orm for rust
Stars: ✭ 205 (-38.99%)
Mutual labels:  orm, database
Sequelizer
A GUI Desktop App for export sequelize models from database automatically.
Stars: ✭ 273 (-18.75%)
Mutual labels:  orm, database
Architect
A set of tools which enhances ORMs written in Python with more features
Stars: ✭ 320 (-4.76%)
Mutual labels:  orm, database

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].