Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hibernate/hibernate-ogm
Hibernate OGM - Domain model persistence for NoSQL datastores
https://github.com/hibernate/hibernate-ogm
cassandra couchdb hibernate infinispan java mongodb neo4j nosql-datastores redis
Last synced: 26 days ago
JSON representation
Hibernate OGM - Domain model persistence for NoSQL datastores
- Host: GitHub
- URL: https://github.com/hibernate/hibernate-ogm
- Owner: hibernate
- License: lgpl-2.1
- Created: 2011-04-13T11:40:56.000Z (over 13 years ago)
- Default Branch: main
- Last Pushed: 2024-09-24T16:20:44.000Z (about 1 month ago)
- Last Synced: 2024-09-29T17:40:54.507Z (about 1 month ago)
- Topics: cassandra, couchdb, hibernate, infinispan, java, mongodb, neo4j, nosql-datastores, redis
- Language: Java
- Homepage: http://hibernate.org/ogm/
- Size: 16.5 MB
- Stars: 321
- Watchers: 34
- Forks: 201
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.txt
- Contributing: CONTRIBUTING.md
- License: license.txt
Awesome Lists containing this project
- awesome-mongodb - Hibernate OGM - The power and simplicity of JPA for NoSQL datastores (Libraries / Java)
- awesome-mongodb - Hibernate OGM - The power and simplicity of JPA for NoSQL datastores (Libraries / Java)
README
# Hibernate OGM
*Version: 5.4.2.Final - 2024-09-24*
## Description
Hibernate OGM stores data in a NoSQL data grid using the Hibernate ORM engine.
The benefits are fairly obvious:
- write your model once using well known JPA annotations and select the right NoSQL data grid for your project
- Hibernate is familiar to many people
- you end up being able to use all the tools of the Hibernate ecosystem such as Hibernate Search or Hibernate ValidatorCheckout for more information.
## Core datastores and contrib datastores
Hibernate OGM supports a large number of NoSQL datastores.
Some are included in this very repository:
* Infinispan
* MongoDB
* Neo4jOthers are in separate repositories, called contrib:
* [Cassandra](https://github.com/hibernate/hibernate-ogm-cassandra)
* [CouchDB](https://github.com/hibernate/hibernate-ogm-couchdb)
* [Ehcache](https://github.com/hibernate/hibernate-ogm-ehcache)
* [Redis](https://github.com/hibernate/hibernate-ogm-redis)
* [Ignite](https://github.com/hibernate/hibernate-ogm-ignite)## Useful pointers
Latest Documentation:
* Reference guide:
* Additional content:Bug Reports:
* Hibernate JIRA (preferred):
* Mailing list:Support:
* The hibernate-ogm tag on Stackoverflow:
* Our forum:## Build instructions
The code is available on GitHub at .
To run the full project build including tests for all backends, documentation etc. execute:
mvn clean install
Note that for running the test suite against separately installed MongoDB or Neo4j servers their host name must be specified via an environment variable.
See the sections below for the details.To speed things up, there are several options for skipping parts of the build.
To run the minimum project build without integration tests, documentation and distribution execute:mvn clean install -DskipITs -DskipDocs -DskipDistro
The following sections describe these options in more detail.
### Importing sources in Eclipse
Import the project as any standard Maven project.
This might trigger a dialog to automatically find and install additional m2e plugins: allow that.Make sure that annotation processing is enabled in your project settings (see "Properties" - "Maven" - "Annotation Processing", the setting should be "Automatically configure JDT APT").
### Integration tests
You can skip integration tests by specifying the `skipITs` property:
mvn clean install -DskipITs
### Documentation
The documentation is built by default as part of the project build. You can skip it by specifying the `skipDocs` property:
mvn clean install -DskipDocs
If you just want to build the documentation, run it from the _documentation/manual_ subdirectory.
By default, the following command only builds the HTML version of the documentation:
mvn clean install -f documentation/manual/pom.xml
If you also wish to generate the PDF version of the documentation, you need to use the `documentation-pdf` profile:
mvn clean install -f documentation/manual/pom.xml -Pdocumentation-pdf
### Distribution
The distribution bundle is built by default as part of the project build. You can skip it by specifying the `skipDistro` property:
mvn clean install -DskipDistro
### Integration tests
Integration tests can be run from the integrationtest module and the default behaviour is to download the WildFly application server,
unpack the modules in it and run the tests using Arquillian.#### WARNING
Be careful when using on existing installation since the modules used by the build are going to be extracted into the
server you want to run the test, changing the original setup.### MongoDB
For executing the tests in the _mongodb_ and _integrationtest/mongodb_ modules, by default the
[embedmongo-maven-plugin](https://github.com/joelittlejohn/embedmongo-maven-plugin) is used which downloads the MongoDB
distribution, extracts it, starts a _mongod_ process and shuts it down after test execution.If required, you can configure the port to which the MongoDB instance binds to (by default 27018)
and the target directory for the extracted binary (defaults to _${project.build.directory}/embeddedMongoDb/extracted_) like this:mvn clean install -DembeddedMongoDbTempDir= -DembeddedMongoDbPort=
To work with a separately installed MongoDB instance instead, specify the property `-DuseExternalMongoDb`:
mvn clean install -DuseExternalMongoDb
This assumes MongoDB to be installed on `localhost`, using the default port and no authentication.
If you work with different settings, configure the required properties in hibernate.properties (for the tests in _mongodb_)
and/or the environment variables `MONGODB_HOSTNAME` `MONGODB_PORT` `MONGODB_USERNAME` `MONGODB_PASSWORD` (for the tests in _integrationtest/mongodb_)
prior to running the tests:export MONGODB_HOSTNAME=mongodb-machine
export MONGODB_PORT=1234
export MONGODB_USERNAME=someUsername
export MONGODB_PASSWORD=someP@ssw0rd
mvn clean install -DuseExternalMongoDb### Neo4j
For running the tests in the _neo4j_ and _integrationtest/neo4j_ modules, by default the
embedded Neo4j configuration is used.Hibernate OGM can connect to a Neo4j server remotely via the Bolt protocol or via HTTP.
These tests are not executed by default, you can run them using the following commands:mvn clean install -Pneo4j-http
or
mvn clean install -Pneo4j-bolt
This assumes Neo4j to be installed on `localhost`, using the default port and no authentication.
If you work with different settings, configure the required properties in hibernate.properties
and/or the environment variables `NEO4J_HOSTNAME`, `NEO4J_PORT`, `NEO4J_USERNAME` and `NEO4J_PASSWORD`
prior to running the tests:export NEO4J_HOSTNAME=neo4j-machine
export NEO4J_PORT=1234
export NEO4J_USERNAME=someUsername
export NEO4J_PASSWORD=someP@ssw0rd## Notes
If you want to contribute, come to the mailing list
or join us on #hibernate-dev on freenode (login required)This software and its documentation are distributed under the terms of the
FSF Lesser Gnu Public License (see license.txt).