Поскольку у меня возникла та же проблема, я разработал класс Generic Dao, который позволяет динамически (с использованием отражения) создавать критерии на основе значений, присвоенных объекту, и запрашивать базу данных
например
Страна страна = новая Страна ();
// эти значения позволяют предположить, что они были назначены вашему сервлету на основе сообщения пользователя
country.setName ( "Люксембург");
// This is where your service layer starts. It gets as a param the Country object
GenericDaoDB gDaoDB = new GenericDaoDB();
try{
List resultList = gDaoDB.list(country);
System.out.println("=========Result Print==============");
for(int i=0; i<resultList.size();i++){
Country resultCountry = (Country)resultList.get(i);
System.out.println("Name:"+ resultCountry.getName()+" Country Code:"+resultCountry.getCountryCode());
}
}catch(BasisException e){
e.printStackTrace();
}
Если вам нравится, посмотрите http://sourceforge.net/apps/wordpress/jprovocateur/2010/09/23/simple-example-hibernate-query-the-database-without-hql-or-criteria/, где вы можете найти более подробную информацию и пример проекта.
И поскольку это универсальный класс, вы можете использовать его для всех своих Pojos