在工作单元克隆中遇到零或零主键

时间:2012-04-06 14:08:58

标签: java eclipselink

我在eclipseLink中遇到了一个常见但令人恼火的问题。我只是尝试使用eclipseLink运行此查询:

列出organizationUnitEntityList = entityManager.createQuery(“从OrganizationUnitEntity中选择o,其中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主键,为什么会出现这个?

1 个答案:

答案 0 :(得分:0)

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