Package org.hibernate.test.jpa.ql

Source Code of org.hibernate.test.jpa.ql.JPAQLComplianceTest

package org.hibernate.test.jpa.ql;

import junit.framework.Test;

import org.hibernate.Session;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
import org.hibernate.test.jpa.AbstractJPATest;

/**
* Tests for various JPAQL compliance issues
*
* @author Steve Ebersole
*/
public class JPAQLComplianceTest extends AbstractJPATest {
  public JPAQLComplianceTest(String name) {
    super( name );
  }

  public static Test suite() {
    return new FunctionalTestClassTestSuite( JPAQLComplianceTest.class );
  }

  public void testAliasNameSameAsUnqualifiedEntityName() {
    Session s = openSession();
    s.beginTransaction();
    s.createQuery( "select item from Item item" ).list();
    s.createQuery( "select item from Item item where item.name = 'a'" ).list();
    s.getTransaction().commit();
    s.close();
  }

  public void testIdentifierCaseSensitive() throws Exception {
    Session s = openSession( );
    // a control test (a user reported that the JPA 'case insensitivity' support
    // caused problems with the "discriminator resolution" code; unable to reproduce)...
    s.createQuery( "from MyEntity e where e.class = MySubclassEntity" );
    s.createQuery( "from MyEntity e where e.other.class = MySubclassEntity" );
    s.createQuery( "from MyEntity where other.class = MySubclassEntity" );

    s.createQuery( "select object(I) from Item i").list();
    s.close();
  }

  public void testIdentifierCasesensitivityAndDuplicateFromElements() throws Exception {
    Session s = openSession();
    s.createQuery( "select e from MyEntity e where exists (select 1 from MyEntity e2 where e2.other.name  = 'something' and e2.other.other = e)" );
    s.close();
  }
 
  public void testGeneratedSubquery() {
    Session s = openSession();
    s.createQuery( "select c FROM Item c WHERE c.parts IS EMPTY" ).list();
    s.close();
  }
}
TOP

Related Classes of org.hibernate.test.jpa.ql.JPAQLComplianceTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.