Ah, right. Agreed.
On Oct 5, 5:13 am, Gunnar Liljas <[email protected]> wrote: > In essence, what I mean is that any related entity** - be it a many-to-one, > one-to-many or some other kind of relation - should ideally be included in > the query using a derived table *if it has a <join>*. It is, however, > unnecessary to do that for the "core" entity queried, and it should be > avoided. > > select [same stuff here] > from A a > inner join APrime ap on a.Id=ap.Id > left outer join (select .... from b inner join BPrime bp on b.Id=bp.Id) db > on A.Id = db.Id > > But not > > select [same stuff here] > from (select ..... from A a > inner join APrime ap on a.Id=ap.Id) da > left outer join (select .... from b inner join BPrime bp on b.Id=bp.Id) db > on da.Id = db.Id > > In TSQL, the objective could be accomplished with CTE:s as well, but I doubt > that it's feasible to do that in NH. > > /G > > 2011/10/5 Isaac Cambron <[email protected]> > > > > > > > > > Thanks for all the feedback! I think I'm OK on the process part of > > submitting a patch, (e.g. I have a pull request for a different issue in the > > submission queue). > > > On the technical merits, I think I should be able to provide a convincing > > test that the current behavior isn't compatible with the spec. E.g. in the > > example from the Jira issue, if a BPrime row wasn't in the database, its > > corresponding B shouldn't come back in that query, either. > > > I'm not sure I understood Gunnar's point: > > > >However, if the use of derived tables is restricted to related entities, > > it will comply with the docs and still behave more properly. > > > What do you mean by related entities here? I'm thinking the spec really > > wants the inner join: > > > If set to join, the default, Hibernate will use an inner join to retrieve > > a <join> defined by a class or its superclasses and an outer join for a > > <join> defined by a subclass. > > > Certainly, I need to only use a derived table when BPrime is defined on B > > and not one of B's subclasses. Also, only when optional=false. But am I > > missing something more? > > > Thanks, > > Isaac > > > On Tue, Oct 4, 2011 at 5:36 AM, Richard Brown (gmail) < > > [email protected]> wrote: > > >> > 3. Any pointers one where I should start? I know my way around the code > >> base a little bit, but if anyone has some advice on how to attack this > >> issue, I'd appreciate it. > > >> Start with a failing test ... that alone could be pulled/cherry-picked > >> into the master branch (and flagged as [Ignore] until it is implemented.)
