... |
* Many Hibernate use cases assume a data source has the ability (with proper user permissions) to process Data Definition Language (DDL) statements like CREATE TABLE and DROP TABLE as well as Data Manipulation Language (DML) statements like SELECT, UPDATE, INSERT and DELETE. Teiid can handle a broad range of DML, but does not directly support DDL against a particular source. |
* Sequence and Identity generation are not supported. Identifier generation based upon table values, such as the hilo generator, require that the identifier table(s) be exposed through Teiid. The GUID identifier generation strategy is directly supported. |
* Sequence generation is not directly supported. |
|
* Identifier generation based upon table values, such as the hilo generator, require that the identifier table(s) be exposed through Teiid. |
|
* GUID and Identity (using generated key retrieval) identifier generation strategy are directly supported. |
h1. Configuration |
... |
For the most part, interacting with Teiid VDBs (Virtual Databases) through Hibernate is no different from working with any other type of data source. First, depending on where your Hibernate application will reside, either in the same VM as the Teiid Runtime or on a separate VM, will determine which jar's are used.
These JAR files have the org.teiid.dialect.TeiidDialect and org.teiid.jdbc.TeiidDriver and org.teiid.jdbc.TeiidDataSource classes.
You configure Hibernate (via hibernate.cfg.xml) as follows:
<property name="connection.driver_class"> org.teiid.jdbc.TeiidDriver </property>
<property name="connection.url"> jdbc:teiid:<vdb-name>@mm://<host>:<port>;user=<user-name>;password=<password> </property>
Be sure to use a Local JDBC Connection if Hibernate is in the same VM as the application server. |
<property name="dialect"> org.teiid.dialect.TeiidDialect </property>
Alternatively, if you put your connection properties in hibernate.properties instead of hibernate.cfg.xml, they would look like this:
hibernate.connection.driver_class=org.teiid.jdbc.TeiidDriver hibernate.connection.url=jdbc:teiid:<vdb-name>@mm://<host>:<port> hibernate.connection.username=<user-name> hibernate.connection.password=<password> hibernate.dialect=org.teiid.dialect.TeiidDialect
Note also that 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="<Class name>" table="<Source/view model name>.[<schema name>.]<Table name>"> ... </class>
<class name="org.teiid.example.Publisher" table="BOOKS.BOOKS.PUBLISHERS"> ... </class>