I think attempting to dynamically infer what to do using the existing ctr would be great
On 24 October 2016 at 21:49, Steve Ebersole <st...@hibernate.org> wrote: > I'm not sure what you are getting at. This is a feature Hibernate has had > for close to 15 years. It's not a "new feature", I'm just proposing a new > behavior to be more consistent with what people generally expect. > > On Mon, Oct 24, 2016, 3:30 PM Sanne Grinovero <sa...@hibernate.org> wrote: > > > Option 2# looks very nice indeed, I'd like that as it would be useful > > to be able to create immutable DTOs directly from a query; but I'm > > wondering what kind of difficulties this might pose, for example I'd > > assume the DTO constructor would be able to trigger lazy loading of > > any property of Person? > > > > Also wondering, if we expose query results as streams in the future, > > would such a feature not become obsolete? > > > > > > On 24 October 2016 at 20:38, Steve Ebersole <st...@hibernate.org> wrote: > > > 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 > > > _______________________________________________ > 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