GreenDao_4. 세션(Sessions)

Sessions

세션


DaoSession은 GreenDao에서 제공하는 중요한 인터페이스입니다.먼저DaoSession은 개발자에게entity에 접근하는 작업과 더 많은 완벽한 작업의DAO 클래스를 제공합니다.

DaoMaster and DaoSession


먼저 DaoMaster 객체를 작성하여 DaoSession 객체를 가져와야 합니다.
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
noteDao = daoSession.getNoteDao();

데이터베이스 연결은daomaster에 속하기 때문에 여러 세션은 같은 데이터베이스 연결을 가리킨다.새 세션을 빨리 만들 수 있습니다.그러나 모든 세션은 메모리를 차지하며, 보통 하나의 세션은 모든 Entity를 캐시합니다.

ID 범위 및 세션 캐시(Identity scope and session "cache")


만약 두 개의 조회가 같은 결과를 되돌려준다면, 중간에 얼마나 많은 자바 대상이 있었든지 상관없이, 이것은 신분 범위 (identity scope) 에 달려 있다.greendao에서는 기본적으로 여러 개의 검색이 같은 자바 대상을 되돌려줍니다.예를 들어 USER 테이블에서 ID가 42인 User 대상을 가져오면 모든query에 똑같은 결과를 되돌려줍니다.
여기에 캐시 Entitis의 부작용이 나타납니다.만약entity가 메모리에 있다면, 이 실체는 데이터베이스에 있는 값으로 다시 구축되지 않을 것입니다.예를 들어, 만약 id를 통해 entity를 얻고 이전에 이 entity를 얻었다면,greendao는 데이터베이스에서 이 entity를 가져오는 것을 조회하지 않을 것이다.대신 세션 캐시에서 Entity를 직접 반환합니다.네가 몇 번을 조작하든지 간에 결과는 똑같다.

좋은 웹페이지 즐겨찾기