Red Hat

Contribute to Hibernate ORM

Contribute to Hibernate ORM

Thanks for your interest! Hibernate ORM is an open source project and community. Contributions, of any type or any scope, drive the project forward!

Contributing does not have to mean writing/fixing code (although we certainly won’t turn away good code contributions). There are lots of ways to become part of the community and contribute…​

Help Other Users

The community page lists a few places for users to find help such as IRC and forums. Not to mention that users often look for help in other places such as StackOverflow or JBoss forums. A great way to get involved in the community is to share your knowledge with others who need it.

Improve Documentation

An extension of helping other users is to contribute documentation. Its the help that keeps on giving!

Whether you simply fix a typo, re-word an unclear section or add a whole new section/topic, improving the documentation helps everyone.

Discuss Development

As the development team discusses design of new features or tries to prioritize work it is great to have input from users. As the saying goes, it is better to measure twice and cut once; and the more eyes we have on theses designs and the more voices in the discussions, the better measurements we get. The best places to get involved in discussing development are the ORM dev HipChat channel, the #hibernate-dev IRC channel and the hibernate-dev mailing list.

Report/Investigate Bugs

Trying out releases and reporting/fixing problems is in many ways the cornerstone of open source development. It is especially critical in the case of early releases (Alphas and Betas) as we are trying to solidify APIs and contracts.

When creating a bug report, please have a test case available that can be 1.) used to reproduce the issue and 2.) used as a long-term regression test. Please see Hibernate Test Case Templates for an easy way to start!

Even if you cannot help code the fix for a bug, submitting test cases for reported bugs that did not provide tests is a great help get these bugs resolved.

Speaking of JIRA, helping us identify issues that duplicate other issues or that are out of date is a great help as well. And voting for issues that are important to you is important in terms of how the development team sets priorities.

Contribute code

What follows here the basics for contributing code to Hibernate ORM. The file in the root of the source tree has detailed information on contributing code to Hibernate ORM; and the file has details on building Hibernate ORM.

You will need git to obtain the source.

git clone
cd hibernate-orm

Hibernate ORM uses Gradle as its build tool. See the mentioned file for details if you are unfamiliar with Gradle. If you’d rather not "install" Gradle, Gradle provides a great feature called the "Gradle wrapper" that offers a zero-conf option. Simply use the gradlew (*nix) or gradlew.bat (Windows) scripts in the root source directory to run the tasks.

./gradlew clean build
./gradlew publishToMavenLocal

Good code contributions have some or all of the following characteristics:

  • it respects the project code style - find templates for Eclipse and IntelliJ IDEA

  • a feature or bug fix has an associated set of appropriate tests

  • documentation is updated

  • the code compiles and the tests pass ./gradlew clean build

Testing multiple databases

To test a specific database, you can use the specific profiles described in databases.gradle

./gradlew clean build -Pdb=pgsql

To run a test from your IDE, you need to ensure the property expansions happen. Use the following command:

./gradlew clean compile -Pdb=pgsql

To run the tests from your IDEs for Oracle, DB2 and other non-OSS JDBC drivers, it is a bit different. You also need to edit build.gradle and change the following (e.g for Oracle DB).

// from
if (db.equalsIgnoreCase("oracle")) {
  dependencies {
    testRuntime( )

dependencies {
  testRuntime( )

Also remember to add the Oracle driver to your local Maven repository. Oracle drivers are not on Maven central.

back to top