Gavin King (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
) *created* an issue
Hibernate ORM (
https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiZWUxMGVjODU5...
) / Improvement (
https://hibernate.atlassian.net/browse/HHH-16730?atlOrigin=eyJpIjoiZWUxMG...
) HHH-16730 (
https://hibernate.atlassian.net/browse/HHH-16730?atlOrigin=eyJpIjoiZWUxMG...
) joining @Any mappings (
https://hibernate.atlassian.net/browse/HHH-16730?atlOrigin=eyJpIjoiZWUxMG...
)
Issue Type: Improvement Assignee: Unassigned Created: 31/May/2023 15:20 PM Priority: Major
Reporter: Gavin King (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
)
So I’ve just woken up to how hard it really is to do something like join fetch an @Any
mapping.
I got some distance with this by mapping the association @Any(fetch=LAZY) , and then using
a query like this:
select n, p from N n join P p on n.thing.id = p.id
And then as long as I remember to force-initialize n.thing before the tx ends, it
essentially works.
There’s three things wrong with this:
* it’s pretty verbose,
* I have to explicitly force-initialize the proxies, and
* if I switch to @Any(fetch=EAGER) (which is the default, ugh) then I start getting n+1
selects.
So, damn, it would sure be nice to be able to write things like:
select n, t from N n join n.thing t
select n from N n join fetch n.thing
select n, p from N n join treat (n.thing as P) p
select n from N n join fetch treat (n.thing as P)
But I would say the highest priority would be to simply fix the problem that fetch=EAGER
automatically results in extra unnecessary selects.
(
https://hibernate.atlassian.net/browse/HHH-16730#add-comment?atlOrigin=ey...
) Add Comment (
https://hibernate.atlassian.net/browse/HHH-16730#add-comment?atlOrigin=ey...
)
Get Jira notifications on your phone! Download the Jira Cloud app for Android (
https://play.google.com/store/apps/details?id=com.atlassian.android.jira....
) or iOS (
https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=Em...
) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100225- sha1:a994ca2 )