我已经制作了一个具有JPA集成的Jax-RS端点,在这里我尝试根据通用名称进行查询,以创建查询,并从数据库中获取数据。
@Override public Set<E> get() {
EntityManager em = emf.createEntityManager();
List<E> results = null;
try {
results = em.createQuery("SELECT e FROM " + entityClass.getSimpleName() + " e", entityClass)
.getResultList();
} finally {
em.close();
return new HashSet<E>(results);
}
}
当我创建存储库的实例时,我在SQL数据库中指定类名和主键(通常是整数)
public class BaseRepository<E, PK> implements CRUDOperations<E, PK> {
private Class<E> entityClass;
protected EntityManagerFactory emf;
}
我尝试了一个只有一个字符串的虚拟类,在这个类中很好用, 我在调试器中对其进行了测试。
但是,当我尝试为自己创建的实际类进行操作时,我只会得到空值(甚至没有空的set =
最后,我检查了数据库,并且表在数据库中具有相同的名称,并且匹配。
答案 0 :(得分:0)
原因是我没有向实体类添加无参数构造函数,因此它无法从数据库中获取一组实体。