Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-3589

HHH-10567 Wrong table for formula if its property is mapped on a secondary table

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Blocker
    • 7.0.0.ER7
    • 7.0.0.ER2 (Beta)
    • Hibernate
    • None

    Description

      If a complex query is used the generated SQL is wrong. With Hibernate4 (EAP6) this worked correctly.

      The difference is

      COALESCE(this_1_.MODDATE_, this_1_.CREDATE_) - HIBERNATE 4
      COALESCE(this_.MODDATE_, this_.CREDATE_) - HIBERNATE 5

      -------
      org.hibernate.exception.SQLGrammarException: could not prepare statement
      at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106)
      at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
      at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109)
      at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:182)
      at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:148)
      at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1928)
      at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1897)
      at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1875)
      at org.hibernate.loader.Loader.doQuery(Loader.java:919)
      at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336)
      at org.hibernate.loader.Loader.doList(Loader.java:2611)
      at org.hibernate.loader.Loader.doList(Loader.java:2594)
      at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2423)
      at org.hibernate.loader.Loader.list(Loader.java:2418)
      at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:109)
      at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1705)
      at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:363)
      at org.hibernate.internal.CriteriaImpl.uniqueResult(CriteriaImpl.java:385)
      at com.redhat.hibernate.TestJPA.b_test(TestJPA.java:50)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:497)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
      at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
      at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
      at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:497)
      at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
      at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
      at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
      at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
      at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
      aused by: org.h2.jdbc.JdbcSQLException: Column "THIS_.MODIFIEDDATE_" not found; SQL statement:
      select this_.UID_ as UID_1_125_0_, ......, COALESCE(this_.MODIFIEDDATE_, this_.CREATEDDATE_) as formula0_0_ from PERSISTENT_ this_ left outer join ....
      at org.h2.message.DbException.getJdbcSQLException(DbException.java:331)
      at org.h2.message.DbException.get(DbException.java:171)
      at org.h2.message.DbException.get(DbException.java:148)
      at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:144)
      at org.h2.expression.Function.optimize(Function.java:1810)
      at org.h2.expression.Alias.optimize(Alias.java:52)
      at org.h2.command.dml.Select.prepare(Select.java:808)
      at org.h2.command.Parser.prepareCommand(Parser.java:219)
      at org.h2.engine.Session.prepareLocal(Session.java:428)
      at org.h2.engine.Session.prepareCommand(Session.java:377)
      at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1138)
      at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:70)
      at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:267)
      at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:146)
      at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:172)
      ... 44 more

      Attachments

        Issue Links

          Activity

            People

              gbadner@redhat.com Gail Badner (Inactive)
              rhn-support-wfink Wolf Fink
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: