Spring 3.0 added a lot of features to be java 5 compatible. Many methods are parametrized now. 
For example `HibernateTemplate.executeXXX()`, `HibernateTemplate.getXXX()`, `HibernateTemplate.mergeXXX()` return T, 
`HibernateTemplate.loadAll()` returns `List<T>`.

But `findXXX()` methods return plain `List`, so I have to cast it to something like `List<MyEntity>`. 

Does somebody know what is the reason? Why find methods are not parametrized? Or probably there is other, parametrized API?

here is what I am doing. 

This is the relevant part of spring.xml:

```
  <bean id="hibernateInterceptor" class="org.springframework.orm.hibernate3.HibernateInterceptor" autowire="byName" /><!--sessionFactory will get autowired-->

  <bean id="deviceDaoTarget" class="com.nso.solution.dao.DeviceDAOHibernateImpl" autowire="byName" /><!--sessionFactory will get autowired-->

  <bean id="discoveryDAO" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="proxyInterfaces">
      <value>com.nso.solution.dao.DeviceDAO</value>
    </property>
    <property name="interceptorNames">
      <list>
        <value>hibernateInterceptor</value>
        <value>deviceDaoTarget</value>
      </list>
    </property>
  </bean>

```

DeviceDAO is an interface that contain several methods that allow to retrieve, save and delete the objects. DeviceDAOHibernateImpl implements this interface, e.g.

```
public List<Device> getAllDevices() {
    return getHibernateTemplate().loadAll(Device.class);
}

```

I had to mark this method with @SuppressWarnings("unchecked") annotation.