0
데이터베이스의 사용자를 보여주는 jsp 웹 페이지를 코딩하려고합니다. 페이지가 정확하게 작동하고 있습니다.JPA 엔티티가 삭제 된 후에도 계속 존재합니다.
예를 들어 페이지의 링크를 클릭하여 데이터베이스에서 사용자를 삭제할 수는 있지만 불행히도 사용자는 페이지가로드 될 때 계속 표시됩니다. 페이지를 다시로드하면 사용자가 사라집니다. JPA 클래스에 @Cacheable(false)
을 추가했지만 아무 것도 변경되지 않았습니다. 더 나은 이해 예를 들어 워크 플로
- 관리자가 클릭 (호출 "showUserHandler"서블릿)
- 페이지는 데이터베이스에서 처음 10 사용자와로드
- 관리자에 의해 (사용자 삭제 핸들러 (MVC)/서블릿 호출)
- 서블릿은 사용자를 삭제하고 포인트 번호 1에서 showUserHandler를 호출합니다.
- 페이지가로드 중이며 10 명의 사용자를 표시하지만 삭제 된 사용자 i 여전히
- F5 키를 누르거나 "다시"사용자는 사용자가 같이 제거
을 사라 S :
Users user = em.find(Users.class, request.getParameter("uId"));
if (user != null) {
em.getTransaction().begin();
em.remove(user);
em.getTransaction().commit();
em.close();
}
그리고 사용자로드 :
EntityManager em = SessionUtil.createManager();
List<Users> usersList = em.createNamedQuery("Users.findAllOrdered", Users.class).setParameter("uId", Integer.parseInt(request.getParameter("lastID"))).setFirstResult(0).setMaxResults(10).getResultList();
수있는 사람 무슨 일이야 ?
showUserHandler 삭제 및 호출이 이루어지는 3 단계 서블릿의 전체 소스 코드를 공유 할 수 있습니까? –
왜 JPA 공급자의 로그를 살펴 보지 않습니까? 그러면 SQL 호출이 표시되고 데이터 스토어에 있는지 여부를 알 수 있으며 캐시에서 오는지 여부를 확인할 수 있습니다. JPA API 호출에 의존하는 것만으로도 큰 블랙 박스로 취급되고 전혀 디버깅되지 않습니다. –
@SanjeevSaha 소스 코드는 – marian04