0
對於OneToMany關係,播放框架允許主機保留從屬列表。列表不具有固定大小並且可能變得非常大,而存儲主機的數據庫行具有預定大小。那麼,Play怎麼樣!框架在包含master的行中存儲從屬列表?播放框架存儲列表(針對OneToMany關係)
對於OneToMany關係,播放框架允許主機保留從屬列表。列表不具有固定大小並且可能變得非常大,而存儲主機的數據庫行具有預定大小。那麼,Play怎麼樣!框架在包含master的行中存儲從屬列表?播放框架存儲列表(針對OneToMany關係)
Play使用hibernate來持久化,所以這是一個休眠問題,而不是專門的Play。
假設我有一個Author類和一個Book類,其中Author有一個Books列表,那麼數據庫將有兩個表,作者和書。書籍將包含到父級的鏈接(author_id)。
因此,hibernate將列表存儲在一個單獨的列表中。如果列表不包含實體,那麼行映射不能完成,我相信hibernate會將數據串行化爲clob,因此它可以存儲任何大小的數據。
所以當我說author1.books.add(book1)時,它實際上是在做book1.author = author1?我猜它只是爲了方便起見,即,而不是編寫查詢Select * from Book Where Author == author1,我只能說author1.books.get(0)? – tldr
你以正常的java方式訪問你的列表。它只有通過這種方式鏈接才能重建列表的數據庫。 – Codemwnci
我可能沒有正確地說出/解決問題,我的錯!我問,當我輸入author.books.get(0)時,數據庫是否運行查詢Select * from Book Where Author.id == book.authorId?同樣,當我想要book.author時,它運行Select * from Author,其中Author.id == book.authorId?即,它將數據與外鍵鏈接,就像常規的rdbms一樣。列表抽象就在那裏,所以我可以將這些實體作爲對象的字段來訪問,而不必鍵入查詢。我的理解是否正確? – tldr