/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.test.hql; import from.In; import in.from.Any; import org.hibernate.Session; import org.hibernate.query.Query; import org.hibernate.resource.transaction.spi.TransactionStatus; import org.junit.Test; import org.hibernate.testing.TestForIssue; import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; /** * @author Andrea Boriero */ @TestForIssue(jiraKey = "HHH-10953") public class UpdateEntitiesWithPackageNamesStartingWithKeywordsTest extends BaseCoreFunctionalTestCase { @Override protected Class<?>[] getAnnotatedClasses() { return new Class[] {Any.class, In.class}; } @Test public void testUpdateEntityWithPackageNameStartingWithIn() { Any entity = new Any(); entity.setProp( "1" ); try (Session session = openSession()) { session.getTransaction().begin(); try { session.save( entity ); session.getTransaction().commit(); } catch (Exception e) { if ( session.getTransaction().getStatus() == TransactionStatus.ACTIVE ) { session.getTransaction().rollback(); } throw e; } } try (Session session = openSession()) { session.getTransaction().begin(); try { final Query query = session.createQuery( "UPDATE Any set prop = :prop WHERE id = :id " ); query.setParameter( "prop", "1" ); query.setParameter( "id", entity.getId() ); query.executeUpdate(); session.getTransaction().commit(); } catch (Exception e) { if ( session.getTransaction().getStatus() == TransactionStatus.ACTIVE ) { session.getTransaction().rollback(); } throw e; } } try (Session session = openSession()) { session.getTransaction().begin(); try { session.createQuery( "DELETE FROM Any" ).executeUpdate(); session.getTransaction().commit(); } catch (Exception e) { if ( session.getTransaction().getStatus() == TransactionStatus.ACTIVE ) { session.getTransaction().rollback(); } throw e; } } } @Test public void testUpdateEntityWithPackageNameStartingWithFrom() { In entity = new In(); entity.setProp( "1" ); try (Session session = openSession()) { session.getTransaction().begin(); try { session.save( entity ); session.getTransaction().commit(); } catch (Exception e) { if ( session.getTransaction().getStatus() == TransactionStatus.ACTIVE ) { session.getTransaction().rollback(); } throw e; } } try (Session session = openSession()) { session.getTransaction().begin(); try { final Query query = session.createQuery( "UPDATE In set prop = :prop WHERE id = :id " ); query.setParameter( "prop", "1" ); query.setParameter( "id", entity.getId() ); query.executeUpdate(); session.getTransaction().commit(); } catch (Exception e) { if ( session.getTransaction().getStatus() == TransactionStatus.ACTIVE ) { session.getTransaction().rollback(); } throw e; } } try (Session session = openSession()) { session.getTransaction().begin(); try { session.createQuery( "DELETE FROM In" ).executeUpdate(); session.getTransaction().commit(); } catch (Exception e) { if ( session.getTransaction().getStatus() == TransactionStatus.ACTIVE ) { session.getTransaction().rollback(); } throw e; } } } }