Short answer @SuppressWarnings
is the right way to go.
Long answer, Hibernate returns a raw List
from the Query.list
method, see here. This is not a bug with Hibernate or something the can be solved, the type returned by the query is not known at compile time.
Therefore when you write
final List<MyObject> list = query.list();
You are doing an unsafe cast from List
to List<MyObject>
- this cannot be avoided.
There is no way you can safely carry out the cast as the List
could contain anything.
The only way to make the error go away is the even more ugly
final List<MyObject> list = new LinkedList<>();
for(final Object o : query.list()) {
list.add((MyObject)o);
}