Enviar búsqueda
Cargar
12 global fetching strategies
•
Descargar como PPT, PDF
•
0 recomendaciones
•
349 vistas
T
thirumuru2012
Seguir
Tecnología
Educación
Denunciar
Compartir
Denunciar
Compartir
1 de 21
Descargar ahora
Recomendados
11 transitive persistence and filters
11 transitive persistence and filters
thirumuru2012
12 hibernate int&cache
12 hibernate int&cache
thirumuru2012
02 hibernateintroduction
02 hibernateintroduction
thirumuru2012
06 association of value types
06 association of value types
thirumuru2012
S313937 cdi dochez
S313937 cdi dochez
Jerome Dochez
Spring data jpa
Spring data jpa
Jeevesh Pandey
Ejb3 Struts Tutorial En
Ejb3 Struts Tutorial En
Ankur Dongre
A Cocktail of Guice and Seam, the missing ingredients for Java EE 6
A Cocktail of Guice and Seam, the missing ingredients for Java EE 6
Saltmarch Media
Recomendados
11 transitive persistence and filters
11 transitive persistence and filters
thirumuru2012
12 hibernate int&cache
12 hibernate int&cache
thirumuru2012
02 hibernateintroduction
02 hibernateintroduction
thirumuru2012
06 association of value types
06 association of value types
thirumuru2012
S313937 cdi dochez
S313937 cdi dochez
Jerome Dochez
Spring data jpa
Spring data jpa
Jeevesh Pandey
Ejb3 Struts Tutorial En
Ejb3 Struts Tutorial En
Ankur Dongre
A Cocktail of Guice and Seam, the missing ingredients for Java EE 6
A Cocktail of Guice and Seam, the missing ingredients for Java EE 6
Saltmarch Media
Core Data Performance Guide Line
Core Data Performance Guide Line
Gagan Vishal Mishra
Struts2 - 101
Struts2 - 101
Munish Gupta
Oops
Oops
Pragya Rastogi
Arquillian in a nutshell
Arquillian in a nutshell
Brockhaus Consulting GmbH
Context and Dependency Injection
Context and Dependency Injection
Werner Keil
Moose Design Patterns
Moose Design Patterns
Ynon Perek
saihw1_weka_tutorial.pptx - Machine Discovery and Social Network ...
saihw1_weka_tutorial.pptx - Machine Discovery and Social Network ...
butest
What makes a good bug report?
What makes a good bug report?
Rahul Premraj
Hidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard Library
doughellmann
JDT Fundamentals 2010
JDT Fundamentals 2010
Olivier Thomann
Oak Lucene Indexes
Oak Lucene Indexes
Chetan Mehrotra
Mining Version Histories to Guide Software Changes
Mining Version Histories to Guide Software Changes
Thomas Zimmermann
CapitalCamp Features
CapitalCamp Features
Phase2
What's new in Doctrine
What's new in Doctrine
Jonathan Wage
14 hql
14 hql
thirumuru2012
13 caching latest
13 caching latest
thirumuru2012
Hibernate jj
Hibernate jj
Joe Jacob
Advanced Hibernate Notes
Advanced Hibernate Notes
Kaniska Mandal
04 dataaccess
04 dataaccess
thirumuru2012
Hibernate for Beginners
Hibernate for Beginners
Ramesh Kumar
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Toru Wonyoung Choi
Moose
Moose
John Napiorkowski
Más contenido relacionado
La actualidad más candente
Core Data Performance Guide Line
Core Data Performance Guide Line
Gagan Vishal Mishra
Struts2 - 101
Struts2 - 101
Munish Gupta
Oops
Oops
Pragya Rastogi
Arquillian in a nutshell
Arquillian in a nutshell
Brockhaus Consulting GmbH
Context and Dependency Injection
Context and Dependency Injection
Werner Keil
Moose Design Patterns
Moose Design Patterns
Ynon Perek
saihw1_weka_tutorial.pptx - Machine Discovery and Social Network ...
saihw1_weka_tutorial.pptx - Machine Discovery and Social Network ...
butest
What makes a good bug report?
What makes a good bug report?
Rahul Premraj
Hidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard Library
doughellmann
JDT Fundamentals 2010
JDT Fundamentals 2010
Olivier Thomann
Oak Lucene Indexes
Oak Lucene Indexes
Chetan Mehrotra
Mining Version Histories to Guide Software Changes
Mining Version Histories to Guide Software Changes
Thomas Zimmermann
CapitalCamp Features
CapitalCamp Features
Phase2
What's new in Doctrine
What's new in Doctrine
Jonathan Wage
La actualidad más candente
(14)
Core Data Performance Guide Line
Core Data Performance Guide Line
Struts2 - 101
Struts2 - 101
Oops
Oops
Arquillian in a nutshell
Arquillian in a nutshell
Context and Dependency Injection
Context and Dependency Injection
Moose Design Patterns
Moose Design Patterns
saihw1_weka_tutorial.pptx - Machine Discovery and Social Network ...
saihw1_weka_tutorial.pptx - Machine Discovery and Social Network ...
What makes a good bug report?
What makes a good bug report?
Hidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard Library
JDT Fundamentals 2010
JDT Fundamentals 2010
Oak Lucene Indexes
Oak Lucene Indexes
Mining Version Histories to Guide Software Changes
Mining Version Histories to Guide Software Changes
CapitalCamp Features
CapitalCamp Features
What's new in Doctrine
What's new in Doctrine
Similar a 12 global fetching strategies
14 hql
14 hql
thirumuru2012
13 caching latest
13 caching latest
thirumuru2012
Hibernate jj
Hibernate jj
Joe Jacob
Advanced Hibernate Notes
Advanced Hibernate Notes
Kaniska Mandal
04 dataaccess
04 dataaccess
thirumuru2012
Hibernate for Beginners
Hibernate for Beginners
Ramesh Kumar
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Toru Wonyoung Choi
Moose
Moose
John Napiorkowski
10 conversations new
10 conversations new
thirumuru2012
Real World MVC
Real World MVC
James Johnson
Spring 3.1: a Walking Tour
Spring 3.1: a Walking Tour
Joshua Long
Dropwizard
Dropwizard
Scott Leberknight
Day 2 Data Stage Manager 11.0
Day 2 Data Stage Manager 11.0
kshanmug2
How to train the jdt dragon
How to train the jdt dragon
Ayushman Jain
Zend framework 03 - singleton factory data mapper caching logging
Zend framework 03 - singleton factory data mapper caching logging
Tricode (part of Dept)
L0043 - Interfacing to Eclipse Standard Views
L0043 - Interfacing to Eclipse Standard Views
Tonny Madsen
02 java spring-hibernate-experience-questions
02 java spring-hibernate-experience-questions
Dhiraj Champawat
hibernate
hibernate
Arjun Shanka
Owner - Java properties reinvented.
Owner - Java properties reinvented.
Luigi Viggiano
Hibernate
Hibernate
Sunil OS
Similar a 12 global fetching strategies
(20)
14 hql
14 hql
13 caching latest
13 caching latest
Hibernate jj
Hibernate jj
Advanced Hibernate Notes
Advanced Hibernate Notes
04 dataaccess
04 dataaccess
Hibernate for Beginners
Hibernate for Beginners
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Moose
Moose
10 conversations new
10 conversations new
Real World MVC
Real World MVC
Spring 3.1: a Walking Tour
Spring 3.1: a Walking Tour
Dropwizard
Dropwizard
Day 2 Data Stage Manager 11.0
Day 2 Data Stage Manager 11.0
How to train the jdt dragon
How to train the jdt dragon
Zend framework 03 - singleton factory data mapper caching logging
Zend framework 03 - singleton factory data mapper caching logging
L0043 - Interfacing to Eclipse Standard Views
L0043 - Interfacing to Eclipse Standard Views
02 java spring-hibernate-experience-questions
02 java spring-hibernate-experience-questions
hibernate
hibernate
Owner - Java properties reinvented.
Owner - Java properties reinvented.
Hibernate
Hibernate
Más de thirumuru2012
15 jpa
15 jpa
thirumuru2012
15 jpa introduction
15 jpa introduction
thirumuru2012
14 criteria api
14 criteria api
thirumuru2012
09 transactions new1
09 transactions new1
thirumuru2012
09 transactions new
09 transactions new
thirumuru2012
07 association of entities
07 association of entities
thirumuru2012
05 inheritance
05 inheritance
thirumuru2012
01 persistence and domain modeling
01 persistence and domain modeling
thirumuru2012
15 jpaql
15 jpaql
thirumuru2012
Más de thirumuru2012
(9)
15 jpa
15 jpa
15 jpa introduction
15 jpa introduction
14 criteria api
14 criteria api
09 transactions new1
09 transactions new1
09 transactions new
09 transactions new
07 association of entities
07 association of entities
05 inheritance
05 inheritance
01 persistence and domain modeling
01 persistence and domain modeling
15 jpaql
15 jpaql
Último
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Pixlogix Infotech
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
ThousandEyes
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
HampshireHUG
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
Último
(20)
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
12 global fetching strategies
1.
Professional Open Source™
Global Fetching strategies © JBoss, Inc. 2003, 2004. 1
2.
Lazy Default Fetch
Plan Professional Open Source™ Hibernate defaults to a lazy fetching strategy for all entities and collections. Item item = (Item) session.load(Item.class, new Long(123)); load() will return a proxy and the sql that loads an Item isn’t executed . A proxy is a placeholder that triggers the loading of the real object when it’s accessed for the first time . Item item = (Item) session.load(Item.class, new Long(123)); item.getId(); item.getDescription(); // Initialize the proxy As long as you access only the database identifier property, no initialization of the proxy is necessary. © JBoss, Inc. 2003, 2004. 2
3.
What is the
need of a proxy ? Professional Open Source™ A proxy is useful if you need the Item only to create a reference, for example: Item item = (Item) session.load(Item.class, new Long(123)); User user = (User) session.load(User.class, new Long(1234)); Bid newBid = new Bid("99.99"); newBid.setItem(item); newBid.setBidder(user); session.save(newBid); © JBoss, Inc. 2003, 2004. 3
4.
After initializing the
proxy …. Professional Open Source™ A Fully initialized Item proxy Associated entity objects and collections are not loaded right away; the proxies carry the identifier values only. Collections also aren’t loaded right away, but we use the term collection wrapper to describe this kind of placeholder. Internally, Hibernate has a set of smart collections that can initialize themselves on demand. Hibernate replaces your collections with these; that is why you should use collection interfaces only in your domain model. By default, Hibernate creates placeholders for all associations and collections, and only retrieves value-typed properties and components right away. © JBoss, Inc. 2003, 2004. 4
5.
When are collections
initialized Professional Open Source™ a collection is initialized if you start iterating through its elements or if you call any of the collection-management operations, such as size() and contains(). Hibernate provides an additional setting that is mostly useful for large collections; they can be mapped as extra lazy. The collection wrapper is now smarter than before. The collection is no longer initialized if you call size(), contains(), or isEmpty()—the database is queried to retrieve the necessary information. © JBoss, Inc. 2003, 2004. 5
6.
Disabling proxy generation
Professional Open Source™ You can disable proxy generation for a particular entity class with the lazy="false" attribute <class name="User“ table="USERS“ lazy="false"> ... </class> Disabling proxy generation on a global level is often too coarse- grained. Usually, you only want to disable the lazy loading behavior of a particular entity association or collection to define a fine-grained fetch plan. © JBoss, Inc. 2003, 2004. 6
7.
Eager loading of
associations and collections Professional Open Source™ Let’s assume that you always require the seller of an Item. In Hibernate XML mapping metadata you’d map the association from Item to User as lazy="false": For eager loading collections ….. After eager loading of bids , seller and successful Bid © JBoss, Inc. 2003, 2004. 7
8.
Selecting a fetching
Strategy Professional Open Source™ Item item = (Item) session.get(Item.class, new Long(123)); You didn’t configure any association or collection to be nonlazy, and that proxies can be generated for all associations. Hence, this operation results in the following SQL SELECT: select item.* from ITEM item where item.ITEM_ID = ? If you access any proxied association or uninitialized collection, a second SELECT is executed to retrieve the data on demand. By selecting a good fetching strategy, we have to reduce the number of on-demand SELECTS © JBoss, Inc. 2003, 2004. 8
9.
Prefetching data in
batches Professional Open Source™ If every entity association and collection is fetched only on demand, many additional SQL SELECT statements may be necessary to complete a particular procedure . List allItems = session.createQuery("from Item").list(); processSeller( (Item)allItems.get(0) ); processSeller( (Item)allItems.get(1) ); processSeller( (Item)allItems.get(2) ); You see one SQL SELECT to retrieve all the Item objects, and an additional SELECT for every seller of an Item as soon as you process it. All associated User objects are proxies. select items... select u.* from USERS u where u.USER_ID = ? select u.* from USERS u where u.USER_ID = ? select u.* from USERS u where u.USER_ID = ? © JBoss, Inc. 2003, 2004. 9
10.
Prefetching data in
batches Professional Open Source™ Batch fetching is often called a blind-guess optimization . You make a guess and apply a batch-size fetching strategy to your User class mapping: <class name="User“ table="USERS“ batch-size="10"> ... </class> You’re telling Hibernate to prefetch up to 10 uninitialized proxies in a single SQL SELECT, if one proxy must be initialized. The resulting SQL for the earlier query and procedure may now look as follows: select items... select u.* from USERS u where u.USER_ID in (?, ?, ?,?... 10 times) © JBoss, Inc. 2003, 2004. 10
11.
Batch Fetching for
collections Professional Open Source™ Batch fetching is also available for collections: <set name="bids“ inverse="true“ batch-size="10"> <key column="ITEM_ID"/> <one-to-many class="Bid"/> </set> © JBoss, Inc. 2003, 2004. 11
12.
Prefetching collections with
subselects Professional Open Source™ <set name="bids“ inverse="true“ fetch="subselect"> <key column="ITEM_ID"/> <one-to-many class="Bid"/> </set> Hibernate now initializes all bids collections for all loaded Item objects, as soon as you force the initialization of one bids collection. It does that by rerunning the first initial query (slightly modified) in a subselect: select i.* from ITEM i select b.* from BID b where b.ITEM_ID in (select i.ITEM_ID from ITEM i) © JBoss, Inc. 2003, 2004. 12
13.
Eager fetching with
joins Professional Open Source™ <class name="Item" table="ITEM"> … <many-to-one name="seller“ class="User“ column="SELLER_ID" update="false“ fetch="join"/> </class> Hibernate now loads both an Item and its seller in a single SQL statement. For example: Item item = (Item) session.get(Item.class, new Long(123)); This operation triggers the following SQL SELECT: select i.*, u.* from ITEM i left outer join USERS u on i.SELLER_ID = u.USER_ID where i.ITEM_ID = ? If you only enable eager fetching with lazy="false", you see an immediate second SELECT. With fetch="join", you get the seller loaded in the same single SELECT. © JBoss, Inc. 2003, 2004. 13
14.
Eager fetching collections
Professional Open Source™ You can also set the eager join fetching strategy on a collection: <class name="Item" table="ITEM"> ... <set name="bids“ inverse="true“ fetch="join"> <key column="ITEM_ID"/> <one-to-many class="Bid"/> </set> </class> Following is the query executed when item is loaded : select i.*, b.* from ITEM i left outer join BID b on i.ITEM_ID = b.ITEM_ID © JBoss, Inc. 2003, 2004. 14
15.
Controlling the maximum
number of joined entity associations Professional Open Source™ Let’s assume that Item has a successfulBid association, that Bid has a bidder, and that User has a shippingAddress. If all these associations are mapped with fetch="join", how many tables are joined and how much data is retrieved when you load an Item? The number of tables joined in this case depends on the global hibernate. max_fetch_depth configuration property. Reasonable settings are small, usually between 1 and 5. You may even disable join fetching for many-to-one and one-to-one associations by setting the property to 0! © JBoss, Inc. 2003, 2004. 15
16.
Outer joins for
a table-per-subclass hierarchy Professional Open Source™ select b1.BILLING_DETAILS_ID, b1.OWNER,b1.USER_ID,b2.NUMBER, b2.EXP_MONTH,b2.EXP_YEAR,b3.ACCOUNT,b3.BANKNAME,b3.SWIFT, case when b2.CREDIT_CARD_ID is not null then 1 when b3.BANK_ACCOUNT_ID is not null then 2 when b1.BILLING_DETAILS_ID is not null then 0 end as clazz from BILLING_DETAILS b1 left outer join CREDIT_CARD b2 on b1.BILLING_DETAILS_ID = b2.CREDIT_CARD_ID left outer join BANK_ACCOUNT b3 on b1.BILLING_DETAILS_ID = b3.BANK_ACCOUNT_ID It joins three tables . Many dbms limit the maximum number of tables that can be combined with an OUTER JOIN. © JBoss, Inc. 2003, 2004. 16
17.
Switching to additional
selects Professional Open Source™ The only way to enable this fetching strategy is to refactor the mapping slightly, as a mix of table- per-hierarchy (with a discriminator column) and table-per-subclass with the <join> mapping: <class name="BillingDetails“ table="BILLING_DETAILS“ abstract="true"> <id name="id“ column="BILLING_DETAILS_ID“ .../> <discriminator column="BILLING_DETAILS_TYPE“ type="string"/> ... <subclass name="CreditCard" discriminator-value="CC"> <join table="CREDIT_CARD" fetch="select"> <key column="CREDIT_CARD_ID"/> ... </join> </subclass> <subclass name="BankAccount" discriminator-value="BA"> <join table="BANK_ACCOUNT" fetch="join"> <key column="BANK_ACCOUNT_ID"/> ... </join> </subclass> </class> © JBoss, Inc. 2003, 2004. 17
18.
Professional Open Source™
select b1.BILLING_DETAILS_ID, b1.OWNER, b1.USER_ID, b2.ACCOUNT,b2.BANKNAME,b2.SWIFT,b1.BILLING_DETAILS_TYPE as clazz from BILLING_DETAILS b1 left outer join BANK_ACCOUNT b2 on b1.BILLING_DETAILS_ID = b2.BANK_ACCOUNT_ID select cc.NUMBER, cc.EXP_MONTH, cc.EXP_YEAR from CREDIT_CARD cc where cc.CREDIT_CARD_ID = ? select cc.NUMBER, cc.EXP_MONTH, cc.EXP_YEAR from CREDIT_CARD cc where cc.CREDIT_CARD_ID = ? Fetch=“select” tells hibernate to fire an immediate select © JBoss, Inc. 2003, 2004. 18
19.
The n+1 selects
problem Professional Open Source™ This code produces n+1 selects Instead of n+1 selects, u will see n/10 +1 selects © JBoss, Inc. 2003, 2004. 19
20.
Professional Open Source™
With a subselect-based prefetch, you can reduce the number of selects to exactly two This will turn off lazy loading which is not advised If needed, u can enable dynamic fetching strategy to join as follows : © JBoss, Inc. 2003, 2004. 20
21.
Forcing proxy and
collection initialization Professional Open Source™ Hibernate.initialize( item.getSeller() ); © JBoss, Inc. 2003, 2004. 21
Descargar ahora