我们正在从一个小表“ACCESS_STATUS”中获取数据,如下图所示。
ID 名称 1 外部 2 内部
当我们使用下面的 JPA 代码时: 在特定场景中,当两个用户同时访问该表时,第一行的 Name 列被提取为 NULL。该字段被进一步使用,因此抛出空指针异常并且应用程序停止工作并且必须重新启动。
JpaEntityManager jpaEm = JpaHelper.getEntityManager(em);
ReadAllQuery query=new ReadAllQuery(AccessStatus.class);
Collection accessStatus = (Collection)jpaEm.getActiveSession().executeQuery(query)
如果我使用如下本机查询,则不存在此问题:
try {
preparedStatement=connection.prepareStatement(sb.toString());
resultSet=preparedStatement.executeQuery();
while (resultSet.next()) {
id = resultSet.getString(1);
name = resultSet.getString(2);
accessStatus.add(new AccessStatus(id,name));
}
}
这是 JPA/Java EE 中的错误吗?这个问题的永久修复是什么?