This project basically aims to create an abstraction layer above common ORM used these days and provide a simplified DAO layer which is not only independent of the ORM tool being used but also integrated with other services, for example App Layer Caching, Free Text Search Engine etc. Initial target is to implement it for Hibernate and when JPA provides Hibernate's Criteria like API implement for JPA as well. Integrate App Layer Cache, Object versioning and Compass Framework.
Current release version - 0.3.1
Current development version - 0.4-SNAPSHOT
Add the following to your maven POM to use smart-dao:
<repositories>
....
<repository>
<id>maven2-repository.dev.java.net</id>
<name>Java.net Repository for Maven</name>
<url>http://download.java.net/maven/2/</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>smart-it-snapshot-repo</id>
<name>Smart IT Engineering snapshot repo</name>
<url>http://dev.smartitengineering.com/maven-repo/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
....
</repositories>
<dependencies>
....
<dependency>
<groupId>com.smartitengineering</groupId>
<artifactId>smart-abstract-dao</artifactId>
<version>${abstract-dao-version}</version>
</dependency>
<dependency>
<groupId>com.smartitengineering</groupId>
<artifactId>smart-hibernate-abstract-dao</artifactId>
<version>${abstract-dao-version}</version>
</dependency>
<dependency>
....
</dependencies>