From 4a3fe30906e6696dd3277b7676d5ef1797351006 Mon Sep 17 00:00:00 2001 From: lrcuhuh Date: Fri, 17 Jul 2015 10:07:39 +0200 Subject: [PATCH 1/5] JRAPSOA-476 tests for associationFormula --- .../formulajoin/AssociationFormulaTest.java | 255 ++++++++++++++++++ .../hibernate/test/formulajoin/Entity.java | 31 +++ .../org/hibernate/test/formulajoin/Id.java | 71 +++++ .../test/formulajoin/Mapping.hbm.xml | 26 ++ .../test/formulajoin/OtherEntity.java | 22 ++ 5 files changed, 405 insertions(+) create mode 100644 hibernate-core/src/test/java/org/hibernate/test/formulajoin/AssociationFormulaTest.java create mode 100644 hibernate-core/src/test/java/org/hibernate/test/formulajoin/Entity.java create mode 100644 hibernate-core/src/test/java/org/hibernate/test/formulajoin/Id.java create mode 100644 hibernate-core/src/test/java/org/hibernate/test/formulajoin/Mapping.hbm.xml create mode 100644 hibernate-core/src/test/java/org/hibernate/test/formulajoin/OtherEntity.java diff --git a/hibernate-core/src/test/java/org/hibernate/test/formulajoin/AssociationFormulaTest.java b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/AssociationFormulaTest.java new file mode 100644 index 000000000000..111cb49bbaa5 --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/AssociationFormulaTest.java @@ -0,0 +1,255 @@ +package org.hibernate.test.formulajoin; + +import static org.junit.Assert.*; + +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +public class AssociationFormulaTest extends BaseCoreFunctionalTestCase { + + public AssociationFormulaTest() { + super(); + } + + @Override + protected boolean isCleanupTestDataRequired() { + return true; + } + + @Override + protected boolean rebuildSessionFactoryOnError() { + return true; + } + + @Override + public String[] getMappings() { + return new String[] { "formulajoin/Mapping.hbm.xml" }; + } + + @Before + public void fillDb() { + Session s; + Transaction t; + + Entity entity = new Entity(); + entity.setId(new Id("test", 1)); + entity.setOther(new OtherEntity()); + entity.getOther().setId(new Id("test", 2)); + + Entity otherNull = new Entity(); + otherNull.setId(new Id("null", 3)); + + s = openSession(); + t = s.beginTransaction(); + s.merge(entity); + s.merge(otherNull); + t.commit(); + s.close(); + } + + @Test + public void testJoin() { + Session s; + Transaction t; + + s = openSession(); + t = s.beginTransaction(); + Entity loaded = (Entity) s.createQuery("select e from Entity e inner join e.other o").uniqueResult(); + assertNotNull("loaded", loaded); + assertEquals(1, loaded.getId().getId()); + assertEquals(2, loaded.getOther().getId().getId()); + assertFalse(Hibernate.isInitialized(loaded.getOther())); + Hibernate.initialize(loaded.getOther()); + t.commit(); + s.close(); + } + + @Test + public void testJoinFetch() { + Session s; + Transaction t; + + s = openSession(); + t = s.beginTransaction(); + Entity loaded = (Entity) s.createQuery("select e from Entity e inner join fetch e.other o").uniqueResult(); + assertNotNull("loaded", loaded); + assertEquals(1, loaded.getId().getId()); + assertTrue(Hibernate.isInitialized(loaded.getOther())); + assertEquals(2, loaded.getOther().getId().getId()); + t.commit(); + s.close(); + } + + @Test + public void testSelectFullNull() { + Session s; + Transaction t; + + s = openSession(); + t = s.beginTransaction(); + Entity loaded = (Entity) s.createQuery("from Entity e where e.other is null").uniqueResult(); + assertNotNull("loaded", loaded); + assertEquals(3, loaded.getId().getId()); + assertNull(loaded.getOther()); + t.commit(); + s.close(); + } + + @Test + public void testSelectPartialNull() { + Session s; + Transaction t; + + s = openSession(); + t = s.beginTransaction(); + Entity loaded = (Entity) s.createQuery("from Entity e where e.other.id.id is null").uniqueResult(); + assertNotNull("loaded", loaded); + assertEquals(3, loaded.getId().getId()); + assertNull(loaded.getOther()); + t.commit(); + s.close(); + } + + @Test + public void testSelectFull() { + Session s; + Transaction t; + + s = openSession(); + t = s.beginTransaction(); + OtherEntity other = new OtherEntity(); + other.setId(new Id("test", 2)); + Entity loaded = (Entity) s.createQuery("from Entity e where e.other = :other").setParameter("other", other).uniqueResult(); + assertNotNull("loaded", loaded); + assertEquals(1, loaded.getId().getId()); + assertNotNull(loaded.getOther()); + assertEquals(2, loaded.getOther().getId().getId()); + t.commit(); + s.close(); + } + + @Test + public void testUpdateFromExisting() { + Session s; + Transaction t; + + s = openSession(); + t = s.beginTransaction(); + Entity loaded = (Entity) s.createQuery("from Entity e where e.id.id = 1").uniqueResult(); + assertNotNull("loaded", loaded); + assertNotNull(loaded.getOther()); + loaded.setOther(new OtherEntity()); + loaded.getOther().setId(new Id("test", 3)); + t.commit(); + s.close(); + } + + @Test + public void testUpdateFromNull() { + Session s; + Transaction t; + + s = openSession(); + t = s.beginTransaction(); + Entity loaded = (Entity) s.createQuery("from Entity e where e.id.id = 3").uniqueResult(); + assertNotNull("loaded", loaded); + assertNull(loaded.getOther()); + loaded.setOther(new OtherEntity()); + loaded.getOther().setId(new Id("test", 3)); + t.commit(); + s.close(); + } + + @Test + @Ignore("multi-column updates don't work!") + public void testUpdateHql() { + Session s; + Transaction t; + + s = openSession(); + t = s.beginTransaction(); + OtherEntity other = new OtherEntity(); + other.setId(new Id("null", 4)); + assertEquals("execute", 1, s.createQuery("update Entity e set e.other = :other where e.id.id = 3").setParameter("other", other).executeUpdate()); + Entity loaded = (Entity) s.createQuery("from Entity e where e.id.id = 3").uniqueResult(); + assertNotNull("loaded", loaded); + assertEquals(4, loaded.getOther().getId().getId()); + t.commit(); + s.close(); + } + + @Test + @Ignore("multi-column updates don't work!") + public void testUpdateHqlNull() { + Session s; + Transaction t; + + s = openSession(); + t = s.beginTransaction(); + assertEquals("execute", 1, s.createQuery("update Entity e set e.other = null where e.id.id = 1").executeUpdate()); + Entity loaded = (Entity) s.createQuery("from Entity e where e.id.id = 1").uniqueResult(); + assertNotNull("loaded", loaded); + assertEquals(4, loaded.getOther().getId().getId()); + t.commit(); + s.close(); + } + + @Test + public void testDeleteHql() { + Session s; + Transaction t; + + s = openSession(); + t = s.beginTransaction(); + OtherEntity other = new OtherEntity(); + other.setId(new Id("test", 2)); + assertEquals("execute", 1, s.createQuery("delete Entity e where e.other = :other").setParameter("other", other).executeUpdate()); + Entity loaded = (Entity) s.createQuery("from Entity e where e.id.id = 1").uniqueResult(); + assertNull("loaded", loaded); + t.commit(); + s.close(); + } + + @Test + public void testDeleteHqlNull() { + Session s; + Transaction t; + + s = openSession(); + t = s.beginTransaction(); + assertEquals("execute", 1, s.createQuery("delete Entity e where e.other is null").executeUpdate()); + Entity loaded = (Entity) s.createQuery("from Entity e where e.id.id = 3").uniqueResult(); + assertNull("loaded", loaded); + t.commit(); + s.close(); + } + + @Test + public void testPersist() { + Session s; + Transaction t; + + s = openSession(); + t = s.beginTransaction(); + Entity entity = new Entity(); + entity.setId(new Id("new", 5)); + entity.setOther(new OtherEntity()); + entity.getOther().setId(new Id("new", 6)); + s.persist(entity); + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + Entity loaded = (Entity) s.createQuery("from Entity e where e.id.id = 5").uniqueResult(); + assertNotNull("loaded", loaded); + assertEquals(6, loaded.getOther().getId().getId()); + t.commit(); + s.close(); + } +} diff --git a/hibernate-core/src/test/java/org/hibernate/test/formulajoin/Entity.java b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/Entity.java new file mode 100644 index 000000000000..0229e5a77ef2 --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/Entity.java @@ -0,0 +1,31 @@ +package org.hibernate.test.formulajoin; + +import java.io.Serializable; + +public class Entity implements Serializable { + private static final long serialVersionUID = 1L; + + private Id id; + + private OtherEntity other; + + public Entity() { + super(); + } + + public Id getId() { + return id; + } + + public void setId(Id id) { + this.id = id; + } + + public OtherEntity getOther() { + return other; + } + + public void setOther(OtherEntity partial) { + this.other = partial; + } +} diff --git a/hibernate-core/src/test/java/org/hibernate/test/formulajoin/Id.java b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/Id.java new file mode 100644 index 000000000000..51e0e5ecab80 --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/Id.java @@ -0,0 +1,71 @@ +package org.hibernate.test.formulajoin; + +import java.io.Serializable; + +public class Id implements Serializable { + private static final long serialVersionUID = 1L; + + private String mandant; + + private int id; + + public Id() { + super(); + } + + public Id(String mandant, int id) { + super(); + this.mandant = mandant; + this.id = id; + } + + public String getMandant() { + return mandant; + } + + public void setMandant(String mandant) { + this.mandant = mandant; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + id; + result = prime * result + ((mandant == null) ? 0 : mandant.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + Id other = (Id) obj; + if (id != other.id) { + return false; + } + if (mandant == null) { + if (other.mandant != null) { + return false; + } + } else if (!mandant.equals(other.mandant)) { + return false; + } + return true; + } +} diff --git a/hibernate-core/src/test/java/org/hibernate/test/formulajoin/Mapping.hbm.xml b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/Mapping.hbm.xml new file mode 100644 index 000000000000..d26b5c9f910f --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/Mapping.hbm.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + case when other is null then null else mandant end + + + + + + + + + + + + diff --git a/hibernate-core/src/test/java/org/hibernate/test/formulajoin/OtherEntity.java b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/OtherEntity.java new file mode 100644 index 000000000000..1f75fec1b978 --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/OtherEntity.java @@ -0,0 +1,22 @@ +package org.hibernate.test.formulajoin; + +import java.io.Serializable; + + +public class OtherEntity implements Serializable { + private static final long serialVersionUID = 1L; + + private Id id; + + public OtherEntity() { + super(); + } + + public Id getId() { + return id; + } + + public void setId(Id id) { + this.id = id; + } +} From d5f3c57ab1a92174300d162e66a05c7b2611b41e Mon Sep 17 00:00:00 2001 From: lrcuhuh Date: Fri, 17 Jul 2015 10:55:00 +0200 Subject: [PATCH 2/5] JRAPSOA-476 patch for associationFormula --- .../ast/tree/AbstractNullnessCheckNode.java | 41 +---------------- .../ast/tree/BinaryLogicOperatorNode.java | 18 ++++---- .../AbstractCollectionPersister.java | 29 +++++++----- .../entity/AbstractEntityPersister.java | 45 +++++++++++-------- .../entity/AbstractPropertyMapping.java | 11 +++-- .../hibernate/persister/entity/Queryable.java | 2 + 6 files changed, 63 insertions(+), 83 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/AbstractNullnessCheckNode.java b/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/AbstractNullnessCheckNode.java index 7accc861d560..6eecf6a308b4 100644 --- a/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/AbstractNullnessCheckNode.java +++ b/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/AbstractNullnessCheckNode.java @@ -26,10 +26,8 @@ import antlr.collections.AST; -import org.hibernate.HibernateException; import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.hql.internal.antlr.HqlSqlTokenTypes; -import org.hibernate.internal.util.StringHelper; import org.hibernate.type.Type; /** @@ -86,7 +84,7 @@ private void mutateRowValueConstructorSyntax(int operandColumnSpan) { setType( expansionConnectorType ); setText( expansionConnectorText ); - String[] mutationTexts = extractMutationTexts( getOperand(), operandColumnSpan ); + String[] mutationTexts = BinaryLogicOperatorNode.extractMutationTexts( getOperand(), operandColumnSpan ); AST container = this; for ( int i = operandColumnSpan - 1; i > 0; i-- ) { @@ -122,41 +120,4 @@ private static Type extractDataType(Node operand) { } return type; } - - private static String[] extractMutationTexts(Node operand, int count) { - if ( operand instanceof ParameterNode ) { - String[] rtn = new String[count]; - for ( int i = 0; i < count; i++ ) { - rtn[i] = "?"; - } - return rtn; - } - else if ( operand.getType() == HqlSqlTokenTypes.VECTOR_EXPR ) { - String[] rtn = new String[ operand.getNumberOfChildren() ]; - int x = 0; - AST node = operand.getFirstChild(); - while ( node != null ) { - rtn[ x++ ] = node.getText(); - node = node.getNextSibling(); - } - return rtn; - } - else if ( operand instanceof SqlNode ) { - String nodeText = operand.getText(); - if ( nodeText.startsWith( "(" ) ) { - nodeText = nodeText.substring( 1 ); - } - if ( nodeText.endsWith( ")" ) ) { - nodeText = nodeText.substring( 0, nodeText.length() - 1 ); - } - String[] splits = StringHelper.split( ", ", nodeText ); - if ( count != splits.length ) { - throw new HibernateException( "SqlNode's text did not reference expected number of columns" ); - } - return splits; - } - else { - throw new HibernateException( "dont know how to extract row value elements from node : " + operand ); - } - } } diff --git a/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/BinaryLogicOperatorNode.java b/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/BinaryLogicOperatorNode.java index d07bfd11cbac..a635d01b0cc7 100644 --- a/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/BinaryLogicOperatorNode.java +++ b/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/BinaryLogicOperatorNode.java @@ -23,11 +23,8 @@ */ package org.hibernate.hql.internal.ast.tree; -import java.util.Arrays; - import antlr.SemanticException; import antlr.collections.AST; - import org.hibernate.HibernateException; import org.hibernate.TypeMismatchException; import org.hibernate.engine.spi.SessionFactoryImplementor; @@ -39,6 +36,8 @@ import org.hibernate.type.StandardBasicTypes; import org.hibernate.type.Type; +import java.util.Arrays; + /** * Contract for nodes representing binary operators. * @@ -209,13 +208,16 @@ else if ( operand.getType() == HqlSqlTokenTypes.VECTOR_EXPR ) { } else if ( operand instanceof SqlNode ) { String nodeText = operand.getText(); - if ( nodeText.startsWith( "(" ) ) { - nodeText = nodeText.substring( 1 ); + if ( nodeText.startsWith( "(" ) && nodeText.endsWith( ")" ) ) { + nodeText = nodeText.substring( 1, nodeText.length() - 1 ); } - if ( nodeText.endsWith( ")" ) ) { - nodeText = nodeText.substring( 0, nodeText.length() - 1 ); + String[] splits; + if ( count > 1 && "null".equalsIgnoreCase( nodeText ) ) { + splits = new String[count]; + Arrays.fill( splits, "null" ); + } else { + splits = StringHelper.split( ",", nodeText ); } - String[] splits = StringHelper.split( ", ", nodeText ); if ( count != splits.length ) { throw new HibernateException( "SqlNode's text did not reference expected number of columns" ); } diff --git a/hibernate-core/src/main/java/org/hibernate/persister/collection/AbstractCollectionPersister.java b/hibernate-core/src/main/java/org/hibernate/persister/collection/AbstractCollectionPersister.java index b693d8e8a222..0e8f370d9fc8 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/collection/AbstractCollectionPersister.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/collection/AbstractCollectionPersister.java @@ -23,15 +23,6 @@ */ package org.hibernate.persister.collection; -import java.io.Serializable; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - import org.hibernate.AssertionFailure; import org.hibernate.FetchMode; import org.hibernate.HibernateException; @@ -96,6 +87,15 @@ import org.hibernate.type.Type; import org.jboss.logging.Logger; +import java.io.Serializable; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + /** * Base implementation of the QueryableCollection interface. * @@ -611,7 +611,7 @@ public SqlValueReference[] map(String reference) { formulaTemplates = elementFormulaTemplates; } else { - columnNames = elementPropertyMapping.toColumns( reference ); + columnNames = columnNames( reference ); formulaTemplates = formulaTemplates( reference, columnNames.length ); } @@ -644,6 +644,15 @@ public String getColumnName() { } } + private String[] columnNames(String reference) { + try { + final int propertyIndex = elementPersister.getEntityMetamodel().getPropertyIndex(reference); + return ((Queryable)elementPersister).getSubclassPropertyColumnNameClosure()[propertyIndex]; + } catch (Exception e) { + return elementPropertyMapping.toColumns(reference); + } + } + private String[] formulaTemplates(String reference, int expectedSize) { try { final int propertyIndex = elementPersister.getEntityMetamodel().getPropertyIndex( reference ); diff --git a/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java b/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java index bead812f8290..345bb817b00c 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java @@ -23,22 +23,6 @@ */ package org.hibernate.persister.entity; -import java.io.Serializable; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.jboss.logging.Logger; - import org.hibernate.AssertionFailure; import org.hibernate.EntityMode; import org.hibernate.FetchMode; @@ -130,6 +114,21 @@ import org.hibernate.type.Type; import org.hibernate.type.TypeHelper; import org.hibernate.type.VersionType; +import org.jboss.logging.Logger; + +import java.io.Serializable; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; /** * Basic functionality for persisting an entity via JDBC @@ -1960,7 +1959,7 @@ public String[] toColumns(String alias, String propertyName) throws QueryExcepti } public String[] toColumns(String propertyName) throws QueryException { - return propertyMapping.getColumnNames( propertyName ); + return propertyMapping.toColumns( propertyName ); } public Type toType(String propertyName) throws QueryException { @@ -2127,7 +2126,7 @@ protected Type[] getSubclassPropertyTypeClosure() { return subclassPropertyTypeClosure; } - protected String[][] getSubclassPropertyColumnNameClosure() { + public String[][] getSubclassPropertyColumnNameClosure() { return subclassPropertyColumnNameClosure; } @@ -2605,10 +2604,18 @@ else if ( isAllOrDirtyOptLocking() && oldFields != null ) { // this property belongs to the table, and it is not specifically // excluded from optimistic locking by optimistic-lock="false" String[] propertyColumnNames = getPropertyColumnNames( i ); + String[] propertyColumnFormulas = propertyColumnFormulaTemplates[i]; String[] propertyColumnWriters = getPropertyColumnWriters( i ); boolean[] propertyNullness = types[i].toColumnNullness( oldFields[i], getFactory() ); for ( int k=0; k Date: Sun, 19 Jul 2015 20:32:44 +0200 Subject: [PATCH 3/5] JRAPSOA-476 add jira key --- .../org/hibernate/test/formulajoin/AssociationFormulaTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hibernate-core/src/test/java/org/hibernate/test/formulajoin/AssociationFormulaTest.java b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/AssociationFormulaTest.java index 111cb49bbaa5..de4df1fc9618 100644 --- a/hibernate-core/src/test/java/org/hibernate/test/formulajoin/AssociationFormulaTest.java +++ b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/AssociationFormulaTest.java @@ -6,10 +6,12 @@ import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; +import org.hibernate.testing.TestForIssue; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; +@TestForIssues( jiraKey = "HHH-9952" ) public class AssociationFormulaTest extends BaseCoreFunctionalTestCase { public AssociationFormulaTest() { From 635bf3ed43f1cbf4fc58cb35fbcb507e6d80ddc4 Mon Sep 17 00:00:00 2001 From: lrcuhuh Date: Sun, 19 Jul 2015 20:45:43 +0200 Subject: [PATCH 4/5] JRAPSOA-476 reset imports --- .../ast/tree/BinaryLogicOperatorNode.java | 5 +-- .../AbstractCollectionPersister.java | 18 +++++------ .../entity/AbstractEntityPersister.java | 31 ++++++++++--------- .../entity/AbstractPropertyMapping.java | 9 +++--- 4 files changed, 33 insertions(+), 30 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/BinaryLogicOperatorNode.java b/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/BinaryLogicOperatorNode.java index a635d01b0cc7..43bc077a6279 100644 --- a/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/BinaryLogicOperatorNode.java +++ b/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/BinaryLogicOperatorNode.java @@ -23,8 +23,11 @@ */ package org.hibernate.hql.internal.ast.tree; +import java.util.Arrays; + import antlr.SemanticException; import antlr.collections.AST; + import org.hibernate.HibernateException; import org.hibernate.TypeMismatchException; import org.hibernate.engine.spi.SessionFactoryImplementor; @@ -36,8 +39,6 @@ import org.hibernate.type.StandardBasicTypes; import org.hibernate.type.Type; -import java.util.Arrays; - /** * Contract for nodes representing binary operators. * diff --git a/hibernate-core/src/main/java/org/hibernate/persister/collection/AbstractCollectionPersister.java b/hibernate-core/src/main/java/org/hibernate/persister/collection/AbstractCollectionPersister.java index 0e8f370d9fc8..cf9057916aac 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/collection/AbstractCollectionPersister.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/collection/AbstractCollectionPersister.java @@ -23,6 +23,15 @@ */ package org.hibernate.persister.collection; +import java.io.Serializable; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + import org.hibernate.AssertionFailure; import org.hibernate.FetchMode; import org.hibernate.HibernateException; @@ -87,15 +96,6 @@ import org.hibernate.type.Type; import org.jboss.logging.Logger; -import java.io.Serializable; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - /** * Base implementation of the QueryableCollection interface. * diff --git a/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java b/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java index 345bb817b00c..b1e75a99310b 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java @@ -23,6 +23,22 @@ */ package org.hibernate.persister.entity; +import java.io.Serializable; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.jboss.logging.Logger; + import org.hibernate.AssertionFailure; import org.hibernate.EntityMode; import org.hibernate.FetchMode; @@ -114,21 +130,6 @@ import org.hibernate.type.Type; import org.hibernate.type.TypeHelper; import org.hibernate.type.VersionType; -import org.jboss.logging.Logger; - -import java.io.Serializable; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; /** * Basic functionality for persisting an entity via JDBC diff --git a/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractPropertyMapping.java b/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractPropertyMapping.java index e30d81e5547b..14e3e6ac8470 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractPropertyMapping.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractPropertyMapping.java @@ -24,6 +24,11 @@ */ package org.hibernate.persister.entity; +import java.util.HashMap; +import java.util.Map; + +import org.jboss.logging.Logger; + import org.hibernate.MappingException; import org.hibernate.QueryException; import org.hibernate.engine.spi.Mapping; @@ -35,10 +40,6 @@ import org.hibernate.type.CompositeType; import org.hibernate.type.EntityType; import org.hibernate.type.Type; -import org.jboss.logging.Logger; - -import java.util.HashMap; -import java.util.Map; /** * Basic implementation of the {@link PropertyMapping} contract. From 811df50bda9f1f5a03f951e6c20133af17084d94 Mon Sep 17 00:00:00 2001 From: racon-am Date: Mon, 20 Jul 2015 07:36:25 +0200 Subject: [PATCH 5/5] correct typo --- .../org/hibernate/test/formulajoin/AssociationFormulaTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hibernate-core/src/test/java/org/hibernate/test/formulajoin/AssociationFormulaTest.java b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/AssociationFormulaTest.java index de4df1fc9618..b6faed2452f4 100644 --- a/hibernate-core/src/test/java/org/hibernate/test/formulajoin/AssociationFormulaTest.java +++ b/hibernate-core/src/test/java/org/hibernate/test/formulajoin/AssociationFormulaTest.java @@ -11,7 +11,7 @@ import org.junit.Ignore; import org.junit.Test; -@TestForIssues( jiraKey = "HHH-9952" ) +@TestForIssue( jiraKey = "HHH-9952" ) public class AssociationFormulaTest extends BaseCoreFunctionalTestCase { public AssociationFormulaTest() {