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