[hibernate-dev] deprecate positional parameters?
Gail Badner
gbadner at redhat.com
Fri Feb 3 15:28:41 EST 2012
+1 for me as well.
----- Original Message -----
> From: "Hardy Ferentschik" <hardy at hibernate.org>
> To: "Hibernate" <hibernate-dev at lists.jboss.org>
> Sent: Friday, February 3, 2012 7:44:48 AM
> Subject: Re: [hibernate-dev] deprecate positional parameters?
>
> +1 for deprecating the HQL style positional parameters in this case.
>
> On Feb 3, 2012, at 4:31 PM, Steve Ebersole wrote:
>
> > The "force" is really 2 fold.
> > First, yes there is problems when the resulting SQL query needs to
> > be re-ordered for various reasons. The positional parameters
> > sometimes end up in different orders from what they started. I
> > *think* all those issues have been resolved now. The problem was
> > that the code originally just assumed the position in the HQL and
> > the position in the SQL would be the same in terms of order. IIRC
> > I had to (1) separate the notions of positional parameter order
> > and the positions they ended up in the SQL and then (2) add
> > tracking between the 2 notions. So extra overhead there.
> >
> > Also, its confusing imo with the JPA notion of positional
> > parameters. If the query uses jpa-style positional parameters,
> > they have to be treated as named parameters in terms of binding to
> > the org.hibernate.Query API. Our impl of javax.persistence.Query
> > hides that complexity. But there is a mismatch between how those
> > parameters are handled in the two APIs. Just so we are all clear
> > on what this means...
> >
> > // HQL positional parameters:
> > Query q = session.createQuery( "from Cat c where c.name = ?" )
> > .setParameter( 1, "Tabitha" )
> > ...
> >
> > // JPQL style:
> > Query q = em.createQuery( "from Cat c where c.name = ?1" )
> > .setParameter( 1, "Tabitha" )
> > ...
> >
> > JPQL style, from Hibernate API:
> > Query q = em.createQuery( "from Cat c where c.name = ?1" )
> > .setParameter( "1", "Tabitha" )
> > ...
> >
> >
> > On Fri 03 Feb 2012 07:18:49 AM CST, Hardy Ferentschik wrote:
> >> And just use named parameters?
> >>
> >> query.setString("name", "Fritz");
> >>
> >> I don't think have a strong opinion on that. I am fine w/
> >> deprecating it.
> >> What is the driving force behind? I recall that there were some
> >> Jira issues which
> >> had some issues with positional parameters. Are they related?
> >>
> >> --Hardy
> >>
> >>
> >> On Feb 3, 2012, at 1:47 PM, Steve Ebersole wrote:
> >>
> >>> What do y'all think about deprecating positional parameters in
> >>> HQL? I
> >>> am talking about the HQL-specific notion here, not the JPA notion
> >>> of a
> >>> positional parameter which we obviously have to continue to
> >>> support.
> >>>
> >>> HQL positional params are in the form:
> >>> from Cat c where c.name = ?
> >>>
> >>> w/ setParameter(1, "steve")
> >>>
> >>> --
> >>> steve at hibernate.org
> >>> http://hibernate.org
> >>> _______________________________________________
> >>> hibernate-dev mailing list
> >>> hibernate-dev at lists.jboss.org
> >>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >>
> >
> > --
> > steve at hibernate.org
> > http://hibernate.org
>
>
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>
More information about the hibernate-dev
mailing list