Domain Modelling Language

Model the structure of your domain entities with a lightweight Java-like domain-specific language and FF automatically generates all the support code.

Strong Consistency

Use a Software Transactional Memory to provide Strict Serializability for Enterprise Applications.

Transparent Persistence

Application state is automatically transferred to/from the underlying storage system.


Hibernate-Search Module

The hibernate-search module allows the indexing of domain objects for fast querying using the Hibernate Search framework.

Enabling the Module

The hibernate-search module depends on the TxIntrospector module. See Transaction Introspector on how to enable the TxIntrospector module.

To enable the module, create a properties file named, and place it in the project resources directory.

This properties file contains the configuration for the Hibernate Search framework. For more details on how to configure Hibernate Search, refer to the framework documentation at

Refer to the examples section for a sample Hibernate Search configuration.

Indexing Domain Objects

Refer to the Hibernate Search framework documentation for examples on how to annotate client code for indexing at

Note that the hibernate-search FF module automatically configures the @Id/@DocumentId for domain objects, so you should not provide one. This operation should be performed inside an active transaction.


Refer to the Hibernate Search framework documentation on how to build a query at

Whenever a query matches objects, a list of their external Ids is returned. To obtain a reference to an object given its external Id, use the FenixFramework.getDomainObject(Id) API.


Sample for configuring Lucene to use an in-memory back-end:

# in-memory back-end

Please refer to the test/test-hibernate-search/ module for a sample test application that uses hibernate-search.

Another example is available on the FF examples repository, under the name hs-example.


© 2008-2013 Fénix Framework
Based on template design by Andreas Viklund