Конечно: ищите, что то же самое, а что отличается.Вы не предоставляете достаточно информации, чтобы узнать, возможно ли это:
public void search(String sAttr, T attr) {
try {
session = DaoSF.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(Foo.class);
criteria.add(Restrictions.like(sAttr, attr));
dataList = criteria.list();
} catch (Exception e) {...}
}
Если типы атрибутов не совпадают, это немного раздражает, и радость, которую вызывает Java, вызывает уродливость.head.
В какой-то момент вы в конечном итоге получите метод, который принимает Criteria
, и вы либо создаете их на лету и передаете их во что-то, что оборачивает try / catch и списокили вы в конечном итоге создаете интерфейс и передаете реализацию тому же самому.
Кстати, IMO, создающий побочные эффекты, такие как установка dataList
внутри метода поиска, в конечном итоге приведет к разрывам:вместо этого возвращая список из метода, даже если вы просто установите его для свойства, которое будет передано тому, кто его использует.