Hi,

Adding more context information, my use case is that I am trying to upgrade
from MySQL 5.7.27 to MySQL 8 but in MySQL 8 there are new reserved words
which collide with column names I am using on my tables. That is why I need
to be able to delimit column names.

I tried to delimit column names in both MySQL 5 and MySQL 8 and got the
same error message described in my previous email.



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 Tue, May 19, 2020 at 11:40 AM Xavier Baqués <x...@streamsets.com> wrote:

> 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