你能帮我纠正这个功能吗?自从我从jee javax迁移到jakartaee后,我一直有异常。它在jee上工作得很好,但在JakartaEE上就不行了public <T extends GenericInputTimesheet> List<T> findWhereItemToto(Class<T> entityClass, Integer value
)
下面是我简化的Jakarta JPA数据模型(为了可读性,我没有在这里包含getter/setter)
@MappedSuperclass
public abstract class GenericInputTimesheet<T extends GenericTimesheetItem> implements Serializable {
@Id
private long id;
@NotNull
@ManyToOne
private T item;
}
@MappedSuperclass
public class GenericTimesheetItem implements Serializable {
@Id
private long id;
private Integer toto;
}
@Entity
public class InputTimesheetMandat extends GenericInputTimesheet<Mandat> {
}
@Entity
public class Mandat extends GenericTimesheetItem {
}
字符串
那么我有这个功能
public <T extends GenericInputTimesheet> List<T> findWhereItemToto(Class<T> entityClass, Integer value) {
return entityManager.createQuery("Select e From " + entityClass.getSimpleName() + " e Where e.item.toto=:toto", entityClass)
.setParameter("toto", value)
.getResultList();
}
型
我的启动器:
public void displayToto(Integer value) {
try {
List<InputTimesheetMandat> inputs = pocService.findWhereItemToto(InputTimesheetMandat.class, value);
System.out.println(inputs.size() + " InputTimesheetMandat Toto = " + value + " founds");
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
型
我发现了这个例外:
java.lang.ClassCastException:class org.hibernate.metamodel.model.domain.internal.MappedSuperclassTypeImpl无法强制转换为class org.hibernate. metamodel.model. domain.MappedSuperclassTypeImpl和org.hibernate. metamodel.model.domain.internal.MappedSuperclassTypeImpl位于加载程序“email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)”的未命名模块中@304f8087)
1条答案
按热度按时间mzmfm0qo1#
我来解决问题
字符串