[hibernate-issues] [Hibernate-JIRA] Updated: (HHH-5419) COUNT operator with composite primary key and JPA 2.0 Criteria API produces bad sql

Steve Ebersole (JIRA) noreply at atlassian.com
Fri Aug 19 14:31:04 EDT 2011


     [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-5419?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steve Ebersole updated HHH-5419:
--------------------------------

    Suitable for new contributors: [Yes, likely]
                Affects Version/s:     (was: 3.5.3)
                                       (was: 3.5.2)
                                       (was: 3.5.1)
                    Fix Version/s: 4.0.0.next
                         Assignee: John Verhaeg

The problem here is that this is perfectly valid ANSI SQL.  So you are saying that SQL Server just does not support this syntax.

We already have some methods on Dialect for what forms of tuple (or row value constructor) syntax the database supports in various usages.  We'll have to take a look and see what is there and how we can leverage that.

> COUNT operator with composite primary key and JPA 2.0 Criteria API produces bad sql
> -----------------------------------------------------------------------------------
>
>                 Key: HHH-5419
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5419
>             Project: Hibernate Core
>          Issue Type: Bug
>    Affects Versions: 3.5.4, 3.6.0.Beta1
>         Environment: hibernate-entitymanager 3.6.0.Beta1, glassfish 3.0.1, linux ubuntu 10.04, MS SQL Server 2008
>            Reporter: Fabio Braga de Oliveira
>            Assignee: John Verhaeg
>            Priority: Minor
>             Fix For: 4.0.0.next
>
>         Attachments: hibernate-count-bug.zip
>
>
> Hibernate produces a invalid SQL if anyone use the count() operator with the JPA 2.0 Criteria API. Code:
> CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
> CriteriaQuery<Object[]> cq = cb.createQuery(Object[].class);
> Root<EntityCompositePK> r = cq.from(EntityCompositePK.class);
> cq.multiselect(cb.count(r));
> assertEquals(0, ((Long) (getEntityManager().createQuery(cq).getSingleResult())[0]).intValue());
> I'm sending a little maven project which reproduces the bug.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list