Hi,

Sorry to bother you again but I've been trying to find a solution for above
issue but still couldn't find a way to make it work.

Any suggestions on what I could do to make it work?


Thanks,

Xavier Baques

Software Engineer

------------------------------

<https://www.facebook.com/streamsets/> <https://twitter.com/streamsets>
<https://www.linkedin.com/company/streamsets/>

EMAIL: x...@streamsets.com

<https://streamsets.com>

<https://streamsets.com/products/transformer/>

<https://go.streamsets.com/WC-2019-Book-DataOps-Full-Book_LP.html>



On Wed, May 13, 2020 at 7:08 PM Xavier Baqués <x...@streamsets.com> wrote:

> Hi,
>
> I am using OpenJPA with Delimited identifiers enabled through the orm.xml
> file, I am able to create the database schema and I can see debugging that
> table columns are correctly delimited with double quotes in Table object,
> however, when I ask EntityManager to create a query it loads the table
> metadata into the Table object without columns being delimited, only table
> name is delimited. As the columns in table metadata are not delimited, when
> the JPQL is parsed an exception is thrown because it cannot find delimited
> column names (they are correctly delimited from the corresponding Entity
> object) in table metadata (in this case the Table object that gets created
> from the table metadata does not have the column names delimited).
>
> Is there any way to fix that by changing the configuration and make
> Delimited identifiers work correctly?
>
> System information:
>
> OpenJPA version: 2.4.3
> MySQL version: 5.7.27
>
> Stack trace of the error:
>
> <openjpa-2.4.3-r422266:1833086 fatal user error>
> org.apache.openjpa.persistence.ArgumentException:
> "com.streamsets.apps.pipelinestore.backend.bean.TestInfo.description"
> declares column ""DESCRIPTION"", but this column does not exist in table
> ""TEST_INFO"".
> at
> org.apache.openjpa.jdbc.meta.MappingInfo.mergeColumn(MappingInfo.java:692)
> at
> org.apache.openjpa.jdbc.meta.MappingInfo.createColumns(MappingInfo.java:593)
> at
> org.apache.openjpa.jdbc.meta.ValueMappingInfo.getColumns(ValueMappingInfo.java:178)
> at
> org.apache.openjpa.jdbc.meta.strats.StringFieldStrategy.map(StringFieldStrategy.java:84)
> at
> org.apache.openjpa.jdbc.meta.FieldMapping.setStrategy(FieldMapping.java:148)
> at
> org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(RuntimeStrategyInstaller.java:81)
> at
> org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping(FieldMapping.java:498)
> at org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:463)
> at
> org.apache.openjpa.jdbc.meta.ClassMapping.resolveNonRelationMappings(ClassMapping.java:921)
> at
> org.apache.openjpa.jdbc.meta.ClassMapping.resolveMapping(ClassMapping.java:858)
> at org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1813)
> at
> org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:829)
> at
> org.apache.openjpa.meta.MetaDataRepository.resolveMapping(MetaDataRepository.java:784)
> at
> org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:664)
> at
> org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:418)
> at
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:389)
> at
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:472)
> at
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getClassMetaData(JPQLExpressionBuilder.java:177)
> at
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.resolveClassMetaData(JPQLExpressionBuilder.java:153)
> at
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:243)
> at
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:213)
> at
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateType(JPQLExpressionBuilder.java:206)
> at
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.access$200(JPQLExpressionBuilder.java:81)
> at
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.populate(JPQLExpressionBuilder.java:2445)
> at org.apache.openjpa.kernel.jpql.JPQLParser.populate(JPQLParser.java:60)
> at
> org.apache.openjpa.kernel.ExpressionStoreQuery.populateFromCompilation(ExpressionStoreQuery.java:162)
> at org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:679)
> at
> org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:652)
> at
> org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:619)
> at
> org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:688)
> at org.apache.openjpa.kernel.QueryImpl.compile(QueryImpl.java:588)
> at
> org.apache.openjpa.persistence.EntityManagerImpl.createQuery(EntityManagerImpl.java:1005)
> at
> org.apache.openjpa.persistence.EntityManagerImpl.createQuery(EntityManagerImpl.java:987)
> at
> org.apache.openjpa.persistence.EntityManagerImpl.createQuery(EntityManagerImpl.java:977)
>
>
> Thanks,
>
> Xavier Baques
>
> Software Engineer
>
> ------------------------------
>
> <https://www.facebook.com/streamsets/> <https://twitter.com/streamsets>
> <https://www.linkedin.com/company/streamsets/>
>
> EMAIL: x...@streamsets.com
>
> <https://streamsets.com>
>
> <https://streamsets.com/products/transformer/>
>
> <https://go.streamsets.com/WC-2019-Book-DataOps-Full-Book_LP.html>
>
>

Reply via email to