[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] Join / Batch reading and FetchType.LAZY
|
Yes can use a LoadGroup to force the loading of an attribute.
q.setHint(QueryHints.LOAD_GROUP_ATTRIBUTE, "invoiceLines");
Bart Kummel wrote:
>
> Hi list,
>
> I'm trying to optimize my application. I've set some relationships to LAZY
> fetching, since we have a lot of UI pages where we don't need the
> referenced
> collection(s). Let's have a look at a simplified example. Say we have the
> following entities:
>
> @Entity
> public class Invoice {
> @OneToMany(mappedBy = "invoice", fetch=FetchType.LAZY,
> cascade={CascadeType.REFRESH, CascadeType.MERGE})
> private List<InvoiceLine> invoiceLines;
> }
>
> @Entity
> public class InvoiceLine {
> @ManyToOne
> @JoinColumn(name = "INV_ID", referencedColumnName = "INV_ID")
> private Invoice invoice
> }
>
> I have a named query to get the invoice without the invoice lines. But for
> the UI page where we do need the invoice AND the invoice lines, I want to
> create a named query to get everything as efficient as possible. So I read
> http://java-persistence-performance.blogspot.com/ and decided to go for
> batch reading. So I have code like this:
>
> Query q = getEntityManager().createQuery("select i from Invoice i
> where
> i.invoiceId = :invoiceId");
> q.setParameter("invoiceId", invoiceId);
> q.setHint(QueryHints.BATCH, "i.invoiceLines");
> q.setHint("eclipselink.batch.type", "EXISTS");
>
> I've set the EclipseLink logging to FINE. I can see in the logged SQL
> statements that the data is retrieved from the database as expected.
> However, as soon as the Invoice object gets detached and I call
> getInvoiceLines(), I get the EclipseLink-7242 error, about traversing LAZY
> relationships. I can resolve this by calling getInvoiceLines() directly
> after the query, but I wonder if there's a more elegant way to fix this.
>
> Best regards,
> Bart Kummel
>
>
> --
> ___________________________________________________________
> *Bart Kummel*
>
> Author of the book Apache MyFaces 1.2 Web Application
> Development<http://tinyurl.com/am12wad>
> blog: BK <http://www.bartkummel.net/> | twitter: @bkummel
> <http://twitter.com/bkummel>
>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>
>
-----
http://wiki.eclipse.org/User:James.sutherland.oracle.com James Sutherland
http://www.eclipse.org/eclipselink/
EclipseLink , http://www.oracle.com/technology/products/ias/toplink/
TopLink
Wiki: http://wiki.eclipse.org/EclipseLink EclipseLink ,
http://wiki.oracle.com/page/TopLink TopLink
Forums: http://forums.oracle.com/forums/forum.jspa?forumID=48 TopLink ,
http://www.nabble.com/EclipseLink-f26430.html EclipseLink
Book: http://en.wikibooks.org/wiki/Java_Persistence Java Persistence
Blog: http://java-persistence-performance.blogspot.com/ Java Persistence
Performance
--
View this message in context: http://old.nabble.com/Join---Batch-reading-and-FetchType.LAZY-tp30406354p30407104.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.