Я работаю с JPA 2 и использую следующий метод:
private static void wipeTable(EntityManager em, Class<? extends Table> klass) {
String tableName = klass.getAnnotation(Table.class).name();
...
}
Я думаю, что есть проблема с параметром Class<? extends Table>
.У меня есть класс сущностей, такой как:
@Entity
@Table(name = "collections")
public class Collection extends MyOtherClass implements Serializable { ... }
Я могу сделать Collection.class.getAnnotation(Table.class).name()
очень хорошо, поэтому я хочу иметь возможность передать Collection
в качестве параметра.Просто вызов wipeTable(em, Collection.class);
приводит к следующей ошибке:
Метод wipeTable (EntityManager, Class) в типе FetchData не применяется для аргументов (EntityManager, Class )
Я попытался просто указать параметр Class klass
, без обобщений:
private static void wipeTable(EntityManager em, Class klass) {
String tableName = ((Table)klass.getAnnotation(Table.class)).name();
Это заставило мою IDE предложить:
Класс является необработанным типом.Ссылки на универсальный тип Class должны быть параметризованы
Я использую Java 1.5.Есть ли способ сказать «дайте мне параметр типа Class
, аннотированный @Table
»?