Welcome to DAO Fusion

DAO Fusion is a lightweight yet comprehensive and extensible Java based Data Access Object (DAO) pattern implementation built on top of Java Persistence API (JPA) and Hibernate.

Data access with DAO Fusion


You could think of DAO Fusion as a solid foundation for your own DAO layers, doing most of the usual heavy lifting for you and providing support for common DAO-related tasks and patterns, such as:

  • Persistent entity model

    Model your business domain using a standard persistent entity model with out-of-the-box default persistent entity implementations.

  • Core DAO classes

    Build your DAO layer by extending standard persistent entity DAO interfaces / abstract implementations which already provide most of the usual DAO functionality.

  • Persistent entity criteria API

    Construct persistent entity criteria with advanced filtering, sorting and paging capabilities and pass them to DAO methods to query for desired results.

  • Criteria transfer object pattern

    Use the criteria transfer object (CTO) pattern to construct client-side versions of persistent entity criteria instances and pass them through the chosen communication mechanism to the remote server-side component, employing a CTO converter for seamless CTO-to-criteria transformation.

  • Bitemporal pattern

    Add temporal aspects to your business domain, tracking persistent entities in two distinct timelines denoting the validity of facts and your knowledge of such facts throughout the time.

Integration tests

In addition to all of that, DAO Fusion provides an out-of-the-box integration test support based on JUnit and Spring's TestContext framework.

DAO Fusion database support

Integration tests interact with the chosen database instance and make sure that all standard DAO implementations are properly and thoroughly tested using a non-trivial sample domain model. Note that DAO Fusion is integration-tested against many popular databases, including MySQL, PostgreSQL, DB2, Oracle 10g and MS SQL Server 2000.

Getting started

Check out our Hello, DAO! tutorial to get up and running with DAO Fusion. Post your questions, ideas or comments on our discussion group or use our issue tracker for reporting issues.

Get involved

Everyone is welcome to join the project and contribute with his or her ideas. See our roadmap to get an overview of planned feature releases and their milestones.