【发布时间】:2015-08-11 12:59:11
【问题描述】:
我有使用 JDBC 的经验,并且正在尝试转向 JPA。我使用从 Netezza DB 读取的 eclipse facet 创建了一些实体类。我正在使用带有 TypedQuery 返回的 createNativeQuery。我正在做一个简单的 select * from table。
问题是它对某些表很有效,但在其他表上它返回正确的行数,但它们都是相同的......这是相同的代码,因为我将工作代码复制到另一个类并且只对表名进行了全部更改。我还尝试了由 facet 创建的 namedQuery,它给出了相同的结果。
这是调用实体类的代码:
@Test
public void test2() {
assertTrue(emf != null);
if (em == null) {
em = (EntityManager) Persistence.
createEntityManagerFactory("web20POC").
createEntityManager();
}
TypedQuery<Dimtask> tq = (TypedQuery<Dimtask>) em.createNamedQuery("Dimtask.findAll", Dimtask.class);
tq.setFirstResult(0);
tq.setMaxResults(10);
List<Dimtask> rlist = tq.getResultList();
for (Dimtask line : rlist) {
System.out.println(line.toString().trim());
}
}
知道为什么当相同的代码适用于另一个表时,我会在一个表中获得所有相同的值吗?
提前致谢。
【问题讨论】:
-
忘了提到我访问同一个表的 JDBC 代码工作正常并返回唯一值。那么,怀疑 JPA 设置可能存在问题?
-
请发布有问题的实体。
-
发布您对名为“Dimtask.findAll”的命名查询的定义。您也可以使用编辑按钮编辑您的原始问题。
-
嗯,这很尴尬...我无法再重现该问题并获得独特的价值。很抱歉打扰了大家!