[hibernate-issues] [Hibernate-JIRA] Created: (HHH-6344) IN expression misses negation when using row-value queries

Isak Jonsson (JIRA) noreply at atlassian.com
Wed Jun 22 00:47:53 EDT 2011


IN expression misses negation when using row-value queries
----------------------------------------------------------

                 Key: HHH-6344
                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6344
             Project: Hibernate Core
          Issue Type: Bug
    Affects Versions: 3.6.5
         Environment: Using the PostgreSQL Dialect
Tested on 3.6.5 and 3.6.0 with the same result. Works on 3.2, but there actual row value native queries are used
            Reporter: Isak Jonsson
         Attachments: MyEntity.java, MyRowValue.java

The queries in the attached JPA entities behave differently regarding whether or not it is a row-value query.

Test code using the attached entities:
{noformat}
        List<Integer> values1 = new LinkedList<Integer>();
        List<MyRowValue> values2 = new LinkedList<MyRowValue>();
        values1.add(1);
        values1.add(2);
        values2.add(new MyRowValue(3,4));
        values2.add(new MyRowValue(5,6));
        em.createNamedQuery("MyEntity.query1").setParameter("values", values1).getResultList();
        em.createNamedQuery("MyEntity.query2").setParameter("values", values1).getResultList();
        em.createNamedQuery("MyEntity.query3").setParameter("values", values2).getResultList();
        em.createNamedQuery("MyEntity.query4").setParameter("values", values2).getResultList();
{noformat}

Results in the following SQL:
{noformat}
select myentity0_.id as id85_, myentity0_.a as a85_, myentity0_.b as b85_ from MyEntity myentity0_ where myentity0_.a in (? , ?)
select myentity0_.id as id85_, myentity0_.a as a85_, myentity0_.b as b85_ from MyEntity myentity0_ where myentity0_.a not in  (? , ?)
select myentity0_.id as id85_, myentity0_.a as a85_, myentity0_.b as b85_ from MyEntity myentity0_ where myentity0_.a=? and myentity0_.b=? or myentity0_.a=? and myentity0_.b=?
select myentity0_.id as id85_, myentity0_.a as a85_, myentity0_.b as b85_ from MyEntity myentity0_ where myentity0_.a=? and myentity0_.b=? or myentity0_.a=? and myentity0_.b=?
{noformat}

(No "NOT" in the last line) 

persistence.xml properties:
{noformat}
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.show_sql" value="false"/>
      <property name="dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
      <property name="hibernate.use_sql_comments" value="true"/>
{noformat}

Thanks for any insight to this!


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list