[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