2012-06-26 3 views
0

OneToMany 관계의 경우 재생 프레임 워크를 사용하면 마스터가 슬레이브 목록을 유지할 수 있습니다. 목록은 고정 크기가 아니며 매우 커질 수 있지만 마스터가 저장된 데이터베이스 행은 미리 결정된 크기입니다. 그래서, 어떻게 플레이합니까! 프레임 워크는 마스터를 포함하는 행에 슬레이브 목록을 저장합니까?프레임 워크 저장 목록 재생 방법 (OneToMany 관계 용)

답변

1

재생은 최대 절전 모드를 유지하기 위해 사용하므로 특히 재생이 아닌 최대 절전 모드의 질문입니다.

내가 Author 클래스와 Book 클래스를 가지고 있다고 가정 해 봅시다. Author 클래스에는 Books 클래스 목록이 있고, 데이터베이스는 두 개의 테이블, 저자 및 책으로 구성됩니다. 책에 부모 링크 (author_id)가 포함됩니다.

따라서 최대 절전 모드에서는 목록을 별도의 목록에 저장합니다. 목록에 엔티티가 포함되어 있지 않아 행 매핑을 수행 할 수 없으면 최대 절전 모드로 데이터를 clob로 serialize하여 모든 크기의 데이터를 저장할 수 있다고 생각합니다.

+0

그래서 내가 author1.books.add (book1)라고 말하면 실제로 book1.author = author1을하고있는 것입니까? 편리 성을 위해 추측하고 있습니다. 즉 Select Book *에서 Ask = * author1이라는 쿼리를 작성하는 대신 author1.books.get (0)을 말할 수 있습니까? – tldr

+0

당신은 일반적인 자바 방식으로 목록에 액세스합니다. 목록을 재구성 할 수 있도록이 방법을 연결하는 유일한 db. – Codemwnci

+0

나는 틀린 질문을 틀리거나 틀을 붙이지 않았다. 나는 author.books.get (0)을 타이핑 할 때 DB가 select * from Book where Author.id == book.authorId를 실행하는지 묻고 있었다. 마찬가지로, book.author을 원할 때 Select *를 Author에서 실행합니다. 여기서 Author.id == book.authorId? 즉, 일반 rdbms처럼 외부 키와 데이터를 연결합니다. 목록 추상화는 바로 거기에있어 쿼리를 입력하는 대신 객체의 필드로 이러한 엔티티에 액세스 할 수 있습니다. 내 이해가 맞습니까? – tldr