JPA의 작동 방식을 이해하려고합니다. 내가 아는 바로는 Entity를 지속하면 해당 객체는 애플리케이션이 닫힐 때까지 메모리에 남아있게됩니다. 즉, 이전에 유지 된 엔티티를 찾으면 데이터베이스에 대한 쿼리가 생성되지 않습니다. 삽입, 갱신 또는 삭제가 없다고 가정하면, 애플리케이션이 충분히 오랫동안 실행되면 그 안에있는 모든 정보가 지속될 수 있습니다. 이것은 어느 시점에서 더 이상 데이터베이스가 필요 없다는 것을 의미합니까?엔티티는 얼마나 오랫동안 방문 했습니까?
편집
내 문제는 데이터베이스와이 아니다. 나는 응용 프로그램 외부에서 데이터베이스를 수정할 수 없다고 확신합니다. 나는 스스로 트랜잭션을 관리하므로 커밋하는 즉시 데이터가 데이터베이스에 저장됩니다. 제 질문은 : 커밋을 한 후에 엔티티는 어떻게됩니까? 그들은 기억 속에 보관되고 캐시처럼 행동합니까? 그렇다면 얼마나 오래 거기에 보관됩니까? persist
을 커밋 한 후 select
쿼리를 만듭니다. 이 select는 이전에 유지 한 객체를 반환해야합니다. 해당 객체가 메모리에서 가져 오게 될 것입니까, 아니면 응용 프로그램이 데이터베이스에 쿼리합니까?
나는 데이터베이스를 지우려고하지 않았다. _after_가 모든 엔티티를 캐시에 남겨두고 캐시처럼 작동하는지 이해하려고 노력하고 있습니다. 나는 아주 약간의 정보가 필요하다. 그래서 매번 데이터베이스에 쿼리하는 것을 원하지 않습니다. List가 응용 프로그램 자체에 중복을 만들까요? – Dragos
매번 쿼리하지 않으려는 경우 L2 캐시 및 선택적으로 쿼리 캐시를 구성 할 수 있습니다. 드문 경우지만 응용 프로그램이 지정한 기간 동안 L1 캐시를 열어 두는 확장 된 지속성 컨텍스트를 활용하도록 선택할 수도 있지만 이는 까다 롭기 때문에 먼저 L2를 시도하십시오.) –