У меня есть общий класс репозитория, который выглядит следующим образом:Как построить общий репозиторий сущностей в Java
public class HibernateRepository<E extends Object, EId>
implements EntityRepository<E, EId> {
// Many things that are working fine
@Override
public E getById(EId id) {
return entityManager.getReference(E.class, id); // <<< Error here!
}
}
Метод getById()
предполагается вернуть определенный экземпляр объекта с учетом его Id
. Что-то очень тривиально во многих других ситуациях, но не в этом, так как возвращается компилятор:
Illegal class literal for the type parameter E
Обратите внимание, что я не хотите передать нужный класс методу, так как я уже делал это в определение класса.
Использование для этого класса может быть:
public class MyClassRepositoryHibernate
extends HibernateRepository<MyClass, Long> {
}
Теперь это новое хранилище работает на MyClass
экземпляров и Id
набирается Long
.
Возможно ли это на Java?
Боли действительно, но решена моя проблема! Благодаря! – AlexSC