Skip to content
Alexey Valikov edited this page Aug 31, 2017 · 1 revision

Databases

Overview

Hyperjaxb3 is built to be database-independent. That is, mappings and annotations produced by Hyperjaxb3 are not database-specific and should be portable across different RDBMS. Basically, you can produce your mapping with Hyperjaxb3 and use your persistence unit on Oracle, PostgreSQL, HSQLDB, Derby and so on - theoreticaly on any database supported by your JPA provider.

Hyperjaxb3 builds run tests on HSQLDB and Derby databases in embedded mode. Apart from that there is a number of integration tests running on Oracle, PostgreSQL and MySQL.

I'd like to state it once again:

Icon Hyperjaxb3 is not database-specific, generated mappings and annotations should be even portable across databases (unless you do database-specific customizations). Hyperjaxb3 should run on any database supported by your JPA provider

Below are notes on our experience with Hyperjaxb3 and various databases (this is NOT a list of supported databases):

Customizing your database schema for specific databse

Database-independence is generally a good thing. You can go from HSQLDB in testing to Oracle 10g in production changing just few lines in configs. However, in certain cases it may be important to be able to customize the generated database schema for a specific database.

To address this requirement, Hyperjaxb3 offers a very powerful mechanism of customizations. Here's a simple example. The following customization specifies the database type of the PRICE column:

<hj:basic>
    <orm:column
        name="PRICE"
        column-definition="DECIMAL"/>
</hj:basic>
Clone this wiki locally