@Entity
public class Book {
@Id
@GeneratedValue
private Long id;
@Unique
private String title;
public String getTitle() { return title; }
public void setTitle(String title) { this.title = title; }
}package myApp;
@AutoDAO
public interface BookDao {
// this finder method uses index-based parameters and returns a single object
@Finder(query="select b from Book b where title = ?")
Book getByTitle(String title);
// and this one uses named parameters and returns object list
@Finder(query="select b from Book b where title like :title")
List<Book> findWithTitleLike(@Named("title") String title);
}Hibernate:
<dao:hibernateScan
base-package="myApp"
xmlns:dao="http://autodao.sourceforge.net/schemas/autodao-0.12"
xsi:schemaLocation="http://autodao.sourceforge.net/schemas/autodao-0.12
http://autodao.sourceforge.net/schemas/autodao-0.12.xsd" />JPA:
<dao:jpaScan
base-package="myApp"
xmlns:dao="http://autodao.sourceforge.net/schemas/autodao-0.12"
xsi:schemaLocation="http://autodao.sourceforge.net/schemas/autodao-0.12
http://autodao.sourceforge.net/schemas/autodao-0.12.xsd" />@Resource BookDao bookDao; // Inject DAO with Spring
public void writeBooks() {
Book fromDb = bookDao.findByTitle("Wicket in Action");
if(fromDb != null) {
System.out.println(fromDb.getTitle()); // outputs found book title
} else {
System.out.println("There is no 'Wicket in Action' book avaliable.")
}
List<Books> allBooks = bookDao.findWithTitleLike("%AutoDAO%");
for (Book b : allBooks) {
System.out.println(b.getTitle()); // output all books' titles about AutoDAO usage
}
}
That's it. No DAO implementation in your code at all! Now you can use HQL queries without a line of code written to implement their usage.
You can read User Guide for more in-depth description of what AutoDAO can do for you or directly proceed to download section.