I'm trying to create an abstract class, to avoid bloating code for each DAO class.
public abstract GenericDAO<T> {
public Optional<T> fetch(Long id) {
return entityManager.find(T, id)
}
}
I have tried the previous, but neither T
nor T.class
works.
My goal is to simply have other DAOs extend this class.
How do i make this work? As in, how do i pass the wildcard as parameter to .find
?
Edit:
To better illustrate.
I have DAO for each entity. Lets say ADao
, BDao
. The only difference between ADao
and BDao
is a the moment the fact, that they each accept and return different type. The JPA, however, doesn't care. Thus I want to create AbstractDao<T>
, and have the children be ADao<EntityA>
and BDao<EntityB>
.
Thus, ADao
nor BDao
will include the repeated code, but each will work on the specific entity classes EntityA
and EntityB
(respectively).