Red Hat Training

A Red Hat training course is available for Red Hat JBoss Data Virtualization

Chapter 7. Using Hibernate with JBoss Data Virtualization

7.1. Configure Hibernate for Use with JBoss Data Virtualization

Prerequisites

  • You must have the JBoss Data Virtualization JDBC API client JAR file (teiid-client.jar) and the JBoss Data Virtualization hibernate dialect JAR file (teiid-hibernate-dialect-VERSION.jar) in Hibernate's classpath. These files are found in EAP_HOME/modules/system/layers/dv/org/jboss/teiid/client/main/.
    These are required for the org.teiid.dialect.TeiidDialect, org.teiid.jdbc.TeiidDriver and org.teiid.jdbc.TeiidDataSource classes.

Procedure 7.1. Configure Hibernate for Use with JBoss Data Virtualization

  1. Open the Hibernate configuration file

    Open the hibernate.cfg.xml file.
  2. Specify the JBoss Data Virtualization driver class

    Specify the JBoss Data Virtualization driver class in the connection.driver_class property:
    <property name="connection.driver_class">
       org.teiid.jdbc.TeiidDriver
    </property>
  3. Set the Connection URL

    Specify the URL for the VDB in the connection.url property:
    <property name="connection.url">
       jdbc:teiid:VDB-NAME@mm://HOST:POST;user=USERNAME;password=PASSWORD
    </property>

    Note

    Be sure to use a local connection if Hibernate is in the same VM as the application server. .
  4. Specify the dialect class

    Specify the JBoss Data Virtualization dialect class in the dialect property:
    <property name="dialect">
       org.teiid.dialect.TeiidDialect
    </property>

Note

Alternatively, the connection properties can be added to the hibernate.properties file instead of hibernate.cfg.xml:
hibernate.connection.driver_class=org.teiid.jdbc.TeiidDriver
hibernate.connection.url=jdbc:teiid:VDB-NAME@mm://HOST:PORT
hibernate.connection.username=USERNAME
hibernate.connection.password=PASSWORD
hibernate.dialect=org.teiid.dialect.TeiidDialect

Note

Since your VDBs will likely contain multiple source and view models with identical table names, you will need to fully qualify table names specified in Hibernate mapping files:
<class name="CLASSNAME" table="SOURCE/VIEW_MODEL_NAME.[SCHEMA_NAME.]TABLENAME">
   ...
</class>
For example:
<class name="org.teiid.example.Publisher" table="BOOKS.BOOKS.PUBLISHERS">
   ...
</class>