So Person is your entity, e.g.: @Entity class Person { @Id Long id; ... }
For a query like `select new DTO( p ) from Person p` Hibernate expects a DTO like: class DTO { public DTO(Long id) { ... } } in fact a DTO like: class DTO { public DTO(Person person) { ... } } will not work with Hibernate. What I was proposing was for adding some support for that in 6.0 based on the SQM work. "Support" here could mean either: 1) add a flag that says whether to support legacy behavior, or this new behavior 2) attempt to dynamically infer what to do (looks at available ctors) (2) would be awesome I think. We'd still have to know how to handle cases where the "DTO" defined ctors matching both cases and which to prefer. On Mon, Oct 24, 2016 at 2:31 PM Vlad Mihalcea <mihalcea.v...@gmail.com> wrote: > Do you mean we should allow the dynamic instantiation to resolve entities > when we pass the entity identifier? > > I think I saw this request on StackOverflow once. > > Did I understand the question properly? > > Vlad > ------------------------------ > From: Steve Ebersole <st...@hibernate.org> > Sent: 10/24/2016 22:21 > To: hibernate-dev <hibernate-dev@lists.jboss.org> > Subject: [hibernate-dev] dynamic instantiation queries > > Historically (well before JPA) HIbernate would handle dynamic instantiation > queries in cases where one of the arguments being an entity-reference by > passing just the entity's identifier rather than a complete reference to > the entity. To be clear, I am talking about a query like: > > select new DTO( p ) from Person p > > Hibernate implicitly treats this like: > > select new DTO( p.id ) from Person p > > and expects DTO to have a ctor taking the appropriate ID type. > > JPA came along and also defines support for dynamic instantiation queries, > but does not specify one way or the other how this case should be handled. > I have been told other providers interpret this the opposite way. Makes > sense. I think it is time we at least allow that as an option. Or maybe a > nicer implementation that looks for both and picks the available one (if > that's not too much effort). > > What do y'all think? > _______________________________________________ > hibernate-dev mailing list > hibernate-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/hibernate-dev > _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev