Package com.isomorphic.hibernate

# Class HibernateDataSource

java.lang.Object
com.isomorphic.base.Base
com.isomorphic.datasource.DataSource
com.isomorphic.datasource.BasicDataSource
com.isomorphic.hibernate.HibernateDataSource

All Implemented Interfaces:
  `com.isomorphic.base.IAutoConfigurable`, `com.isomorphic.datasource.Committable`, `com.isomorphic.datasource.FreeResourcesHandler`, `com.isomorphic.datasource.IType`, `com.isomorphic.interfaces.IHibernateDataSource`, `IToJSON`, `Serializable`

public class HibernateDataSource extends BasicDataSource implements com.isomorphic.interfaces.IHibernateDataSource
A DataSource implementation for the Hibernate ORM system. SmartClient Server can integrate with Hibernate's ORM facilities, making use of new or existing bean mappings, or it can drive Hibernate as a pure storage layer in "beanless" mode. In this latter mode, SmartClient programs can connect to a Hibernate data store for all four CRUD operations, with zero server-side code or Hibernate configuration.

See the client reference documentation for details of configuring and using Hibernate DataSources - search for "hibernateIntegration". For a wider general discussion of data integration options with SmartClient Server, search the client documentation for "serverDataIntegration"

See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Map<String,DSField>`
  `additionalFields`
  Holds list of additional fields requested by specific `DSRequest`.
  `protected String`
  `configName`
  Holds config name - can be configured with "jpaConfig" parameter.
  `static final Character`
  `ESCAPE_CHARACTER`
  Holds character ('~') used to escape wild cards in 'like' clause.
  `protected Boolean`
  `generateRelatedUpdates`
  Holds value should related updates be generated.
  `static final String`
  `HB_CONFIG_PROPERTY`
  Name of the Hibernate configuration name property.
  `protected List<DSResponse>`
  `relatedUpdates`
  Holds list of generated related updates.

  ### Fields inherited from class com.isomorphic.datasource.DataSource

  `OP_ADD, OP_CLIENT_EXPORT, OP_CUSTOM, OP_DOWNLOAD_FILE, OP_FETCH, OP_GET_FILE, OP_GET_FILE_VERSION, OP_HAS_FILE, OP_HAS_FILE_VERSION, OP_LIST_FILE_VERSIONS, OP_LIST_FILES, OP_LOAD_SCHEMA, OP_REMOVE, OP_REMOVE_FILE, OP_REMOVE_FILE_VERSION, OP_RENAME_FILE, OP_SAVE_FILE, OP_UNIQUE_NAME, OP_UPDATE, OP_VALIDATE, OP_VIEW_FILE`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `commitTransaction(org.hibernate.Transaction trx)`
  Deprecated.
  As of SmartClient 8.0.
  `static String`
  `escapeValueForFilter(Object value, char escapeChar)`
  Escapes characters "_" and "%" with specified character in value object.
  `DSField`
  `getField(String fieldName)`
  Returns `DSField` by specified name.
  `List`
  `getFieldNames(boolean dropIgnored)`
  Returns combined list of data source configured and request configured field names.
  `static void`
  `rollbackTransaction(org.hibernate.Transaction trx)`
  Deprecated.
  As of SmartClient 8.0.
  `static org.hibernate.Transaction`
  `startTransaction()`
  Deprecated.
  As of SmartClient 8.0.

  ### Methods inherited from class com.isomorphic.datasource.BasicDataSource

  `getAuditDataSource, getAuditRecord, getAuditRecord, hasCustomDefaultFetchOperation, hasCustomLogic, shouldAutoJoinTransaction, shouldAutoStartTransaction, transformMultipleFields, transformMultipleFields, writeMultiAudits`

  ### Methods inherited from class com.isomorphic.datasource.DataSource

  `add, add, addDynamicDSGenerator, addDynamicDSGenerator, addDynamicDSGenerator, clearDynamicDSGenerators, convertRelativeDates, convertRelativeDates, convertRelativeDates, convertRelativeDates, convertRelativeDates, convertRelativeDates, executeFileSource, fetch, fetch, fetchById, fetchById, fetchById, fetchSingle, fetchSingle, filter, filter, fromXML, fromXML, fromXML, fromXML, fromXML, fromXML, fromXML, fromXML, get1ManyRelationFields, getAuditChangedFieldsFieldName, getAuditRevisionFieldName, getAuditTimestampFieldName, getAuditTypeFieldName, getAuditUserFieldName, getDefaultDynamicDSGenerator, getDirectFields, getDynamicDSGenerators, getEnumConstantProperty, getEnumOrdinalProperty, getEnumTranslateStrategy, getFieldNames, getFile, getFileAsInputStream, getFileAsString, getFileContentsField, getFileFormatField, getFileNameField, getFileTypeField, getID, getJoinDSName, getJoinDSName, getListProperties, getListProperties, getListProperty, getManyManyRelationFields, getMapProperty, getName, getNonIncludedFields, getObjectProperty, getOperationProperty, getPrimaryKey, getProperties, getProperties, getProperties, getProperty, getPropertyJavaClass, getRecordXPath, getRelatedDisplayRecord, getRelatedDisplayRecord, getRelatedDSName, getRelatedDSName, getRelatedTableAlias, getRelationFields, getTableName, getTransactionObject, getTransactionObject, has1ManyRelationFields, hasFile, hasManyManyRelationFields, hasRecord, hasRecord, hasRelationFields, initialized, is1ManyRelationField, isManyManyRelationField, isModificationOperation, isRelationField, isServerOnly, listFiles, listFiles, listFiles, listFiles, listFiles, listFiles, remove, removeDynamicDSGenerator, removeDynamicDSGenerator, removeDynamicDSGenerator, removeFile, renameFile, saveFile, setEnumConstantProperty, setEnumOrdinalProperty, setEnumTranslateStrategy, setOmitNullMapValuesInResponse, setProperties, transformImportValue, transformImportValue, transformResponse, update, update, validate, validate, validate, validateRecord`

- ## Field Details

  - ### ESCAPE_CHARACTER

    public static final Character ESCAPE_CHARACTER
    Holds character ('~') used to escape wild cards in 'like' clause. Avoid using backslash '\' or dollar sign '$' because it is often used in databases as DB escape or wild card characters.

  - ### HB_CONFIG_PROPERTY

    public static final String HB_CONFIG_PROPERTY
    Name of the Hibernate configuration name property.
    See Also:
      - Constant Field Values

  - ### configName

    protected String configName
    Holds config name - can be configured with "jpaConfig" parameter. Holds empty string for default configuration.

  - ### relatedUpdates

    protected List<DSResponse> relatedUpdates
    Holds list of generated related updates. Usage: set this field to empty list before executing `setProperties()`; subsequent calls to `setRelationFieldValue()` will add `DSResponse` objects for every change in related data sources.

  - ### generateRelatedUpdates

    protected Boolean generateRelatedUpdates
    Holds value should related updates be generated. (Re)initialized on every `execute()` call. `true` - related updates will be generated; `false` - related updates will not be generated; `null` - related updates will be generated only for "add" and "update" operations, related updates will not be generated for "remove" operation.

  - ### additionalFields

    protected Map<String,DSField> additionalFields
    Holds list of additional fields requested by specific `DSRequest`.

- ## Method Details

  - ### getFieldNames

    public List getFieldNames(boolean dropIgnored)
    Returns combined list of data source configured and request configured field names.
    Parameters:
      `dropIgnored` - `boolean` `true` - ignored fields are dropped; `false` - ignored fields are included;
    Returns:
      `List` field names.

  - ### getField

    public DSField getField(String fieldName)
    Returns `DSField` by specified name. First checks data source configured fields. Checks request configured fields if it is not found within data source configured fields. Returns `null` if `fieldName` parameter is `null` or field is not found.
    Overrides:
      `getField` in class `BasicDataSource`
    Parameters:
      `fieldName` - the name of the field whose definition you want
    Returns:
      `DSField` field.
    See Also:
      - `DSField`

  - ### escapeValueForFilter

    public static String escapeValueForFilter(Object value, char escapeChar)
    Escapes characters "_" and "%" with specified character in value object. Specified escape character is escped (doubled) as well. Empty string is returned if value object is null.
    Parameters:
      `value` - `Object` Value which should be escaped.
      `escapeChar` - `char` ecape character.
    Returns:
      `String` Escaped string value.

  - ### startTransaction

    public static org.hibernate.Transaction startTransaction() throws Exception
    Deprecated.
    As of SmartClient 8.0. Use `HibernateTransaction.startTransaction(com.isomorphic.datasource.DSTransaction)` instead
    Start a new transaction. The transaction ends when either `commitTransaction(org.hibernate.Transaction)` or`rollbackTransaction(org.hibernate.Transaction)` is called for the transaction.
    Returns:
      the new transaction
    Throws:
      `Exception`

  - ### rollbackTransaction

    public static void rollbackTransaction(org.hibernate.Transaction trx) throws Exception
    Deprecated.
    As of SmartClient 8.0. Use `HibernateTransaction.rollbackTransaction(com.isomorphic.datasource.DSTransaction)` instead
    Rollback and clean up the supplied transaction
    Throws:
      `Exception` - if problems were found rolling back the transaction

  - ### commitTransaction

    public static void commitTransaction(org.hibernate.Transaction trx) throws Exception
    Deprecated.
    As of SmartClient 8.0. Use `HibernateTransaction.commitTransaction(com.isomorphic.datasource.DSTransaction)` instead
    Commit and clean up the supplied transaction.
    Throws:
      `Exception` - if problems were found committing the transaction