2012-04-06 25 views
1

我在eclipseLink中遇到了一个常见但令人烦恼的问题。我试图使用eclipseLink运行此查询:在工作单元中遇到空或零主键克隆

List organizationUnitEntityList = entityManager.createQuery(“select o from OrganizationUnitEntity o where o.unitId =?1”)。setParameter(1,userTypeDomain.getUnitId())。getResultList (); OrganizationUnitEntity organizationUnitEntity = organizationUnitEntityList.get(0);

// 1作为参数传递

OrganizationUnitEntity是:

公共类OrganizationUnitEntity {

@Id 
private int unitId; 
private String unit; 

    getters and setters... 

}

但是我收到的例外是: 空或工作单元中遇到的零主键克隆

现在,因为数据库中没有null或0主键,为什么这个是来??

+0

你检查了其他表吗?它可能是一个空或零PK从外键...也许? – 2012-04-06 15:58:50

+0

不......没有这种情况...我刚开始开发应用程序,每个表中只有一个条目,其中pk为1 – user746458 2012-04-06 17:21:56

回答

0

异常发生在哪里 - 你提到你正在执行一个查询,但它是否在执行查询之前尝试刷新?您可以在查询之前尝试调用flush,因为它可能是您的EM包含一个0/null pk的实体,但不应该。如果在查询后发生,请检查查询中的SQL返回的结果。尝试将EclipseLink日志记录设置为最佳状态:并且如果仍然无法使用类似下面的内容打印缓存中的内容:JPAHelper.getEntityManager(em).getActiveSession()。getIdentityMapAccessor()。printIdentityMaps();