Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc) » [Teneo] Not-null property references a null value
| | | | |
Re: [Teneo] Not-null property references a null value [message #92077 is a reply to message #92031] |
Tue, 31 July 2007 00:49 |
Alain Picard Messages: 266 Registered: July 2009 |
Senior Member |
|
|
Martin,
After not being able to generate the mapping and constantly getting the error mentioned earlier, I decided to switch to use a joined
strategy.
Well, I can now successfully save a model instance to the database.
That being said, I am just facing more issues.
First, off if you look at the ecore that I submitted, some columns are of type EEnums. When looking at the database, those enums are
not mapped as table. Looking at previous post, and at bug 182825 and at the default for enumerated columns being ordinal (9.1.21)
then how do I get the extra tables generated and the ordinal values saved instead of the text value in a standard varchar column.
2nd, I am trying to find the best and most efficient way to "initialize" the HbDataStore.
I have tried to set the USE_MAPPING_FILE property, only to get exception "org.hibernate.hql.ast.QuerySyntaxException: StTreeRoot is
not mapped, etc. I found a post of March 27 covering this issue, but here is what I get in my log:
DEBUG [30 Jul 2007 19:43] HbSessionDataStore.java: 156 : Searching hbm files in class paths of epackages
DEBUG [30 Jul 2007 19:43] StoreUtil.java: 514 : >>>> Building or descriptor file List
DEBUG [30 Jul 2007 19:43] StoreUtil.java: 528 : Try path: ;hibernate.hbm.xml
and then it moves on. I have tried to put the hibernate.hbm.xml file in the classpath (beside log4j.properties), at the root, in the
package directory. When comparing with the above mentioned post, I don't see any other try path listed or !found anywhere. Any clue?
Next, I have set the UPDATE_SCHEMA to false, to try to speed up the initialization (once the schema is stable, I believe that should
be the standard way to go). Anyway, I now get the following after executing a query:
org.hibernate.exception.SQLGrammarException: could not load an entity: [StInterpretationContext#1]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateCo nverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExce ptionHelper.java:43)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1874)
at org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:48)
at org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:42)
at org.hibernate.persister.entity.AbstractEntityPersister.load( AbstractEntityPersister.java:3042)
at org.hibernate.event.def.DefaultLoadEventListener.loadFromDat asource(DefaultLoadEventListener.java:395)
at org.hibernate.event.def.DefaultLoadEventListener.doLoad(Defa ultLoadEventListener.java:375)
at org.hibernate.event.def.DefaultLoadEventListener.load(Defaul tLoadEventListener.java:139)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad (DefaultLoadEventListener.java:179)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(Defa ultLoadEventListener.java:103)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878 )
at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java :846)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.j ava:557)
at org.hibernate.type.EntityType.resolve(EntityType.java:379)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:116)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:854)
at org.hibernate.loader.Loader.doQuery(Loader.java:729)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 78)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at test.TestSTM.main(TestSTM.java:100)
Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown column 'strootnode2_.concreteid' in 'field list'
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936 )
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedSta tement.java:1268)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatem ent.java:1403)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatc her.java:186)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
... 25 more
this does not occur if the option is not specified. Any idea why this is happening?
At last, what would be your most efficient "initialization" routine for HbDataStore. Do you need to set EPackage every time? etc.
Thanks again for all your help. We're slowly but surely getting there.
Alain
Martin Taal wrote:
> Hi Alain,
> The following happens. The StTokenImpl has a many-to-one reference to
> the StTokenSourceImpl. Before saving the StTokenImpl it nullifies the
> reference to the StTokenSourceImpl because StTokenSourceImpl is not yet
> saved in the db (this nullifying does not occur in the object but in a
> separate array of values kept by hibernate).
> This can be repaired by first saving StTokenSourceImpl or by setting a
> cascade annotation on the ereference (I tried the last and it seemed to
> work, see the attached ecore).
>
> gr. Martin
>
> Alain Picard wrote:
>> Oops, here is the attachment
>>
>> Alain
>
>
>
> ------------------------------------------------------------ ------------
>
> <?xml version="1.0" encoding="UTF-8"?>
> <ecore:EPackage xmi:version="2.0"
> xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="STM_MetaModel"
> nsURI="http://com.castortech.stm" nsPrefix="STM_MetaModel">
> <eClassifiers xsi:type="ecore:EClass" name="StTreeRoot">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sources" lowerBound="1"
> upperBound="-1" eType="#//StTokenSource" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="rootInterpreter" lowerBound="1"
> eType="#//StInterpretationContext" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StInterpretationContext">
> <eStructuralFeatures xsi:type="ecore:EReference" name="mainTokenSource" lowerBound="1"
> eType="#//StTokenSource"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="root" lowerBound="1" eType="#//StRootNode"
> containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="interpreterId" lowerBound="1"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StRootNode" eSuperTypes="#//StConcreteNode"/>
> <eClassifiers xsi:type="ecore:EClass" name="StBaseNode">
> <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//StBaseNode"
> eOpposite="#//StBaseNode/children"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1"
> eType="#//StBaseNode" containment="true" eOpposite="#//StBaseNode/parent"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="nodeSources" upperBound="-1"
> eType="#//StTokenSource"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StToken" eSuperTypes="#//StBaseNode">
> <eStructuralFeatures xsi:type="ecore:EReference" name="coordinate" eType="#//StCoordinate"
> containment="true" eOpposite="#//StCoordinate/owner"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tokenType" lowerBound="1"
> eType="#//StTokenType"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="image" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="originalNode" eType="#//StBaseNode"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="tokenSource" lowerBound="1"
> eType="#//StTokenSource">
> <eAnnotations source="teneo.jpa">
> <details key="value" value="@ManyToOne(cascade={PERSIST})"/>
> </eAnnotations>
> </eStructuralFeatures>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="formattingType" lowerBound="1"
> eType="#//StFormattingType"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="nonRegulars" upperBound="-1"
> eType="#//StNonRegular" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EEnum" name="StTokenType">
> <eLiterals name="Regular"/>
> <eLiterals name="Special" value="1"/>
> <eLiterals name="EOF" value="2"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StCoordinate">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" lowerBound="1"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="length" lowerBound="1"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="owner" lowerBound="1" eType="#//StToken"
> eOpposite="#//StToken/coordinate"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StTokenSource">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="uriString" lowerBound="1"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tabSize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EEnum" name="StFormattingType">
> <eLiterals name="None"/>
> <eLiterals name="IndentOnly" value="1"/>
> <eLiterals name="FormatBefore" value="2"/>
> <eLiterals name="FormatAfter" value="3" literal=""/>
> <eLiterals name="Full" value="4"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StNonRegular">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonRegularType" lowerBound="1"
> eType="#//StNonRegularType"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="special" eType="#//StToken"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="freeNode" eType="#//StInterpretationContext"
> containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EEnum" name="StNonRegularType">
> <eLiterals name="Special"/>
> <eLiterals name="FreeNode" value="1"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StConcreteNode" eSuperTypes="#//StBaseNode">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="concreteId" lowerBound="1"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> </eClassifiers>
> </ecore:EPackage>
|
|
|
Re: [Teneo] Not-null property references a null value [message #92093 is a reply to message #92077] |
Tue, 31 July 2007 01:08 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Alain,
Which bug do you mean (182825 seemed to point to another bug)?
Not finding the hbm file can be caused by this issue:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=196535
This was solved in the build of 18 july. Which build are you using?
The other exception you get is this:
> Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
> Unknown column 'strootnode2_.concreteid' in 'field list'
Normally this occurs because the db schema is not in sync with the (in-memory) mapping. Does this
maybe apply to your case?
Other than this I have no real idea why this exception occurs when update_schema is false.
Yes the epackages are required for the initialization. The hbdatastore does some computation which
is not required for all users (adds econtainer mapping and computes referer relations). But overall
I don't think that this takes much time (I have never done performance measurements on that though).
Setting the update_schema to false surely saves time and it is the only option I know for getting
better start up times.
gr. Martin
Alain Picard wrote:
> Martin,
>
> After not being able to generate the mapping and constantly getting the
> error mentioned earlier, I decided to switch to use a joined strategy.
>
> Well, I can now successfully save a model instance to the database.
>
> That being said, I am just facing more issues.
>
> First, off if you look at the ecore that I submitted, some columns are
> of type EEnums. When looking at the database, those enums are not mapped
> as table. Looking at previous post, and at bug 182825 and at the default
> for enumerated columns being ordinal (9.1.21) then how do I get the
> extra tables generated and the ordinal values saved instead of the text
> value in a standard varchar column.
>
> 2nd, I am trying to find the best and most efficient way to "initialize"
> the HbDataStore.
>
> I have tried to set the USE_MAPPING_FILE property, only to get exception
> "org.hibernate.hql.ast.QuerySyntaxException: StTreeRoot is not mapped,
> etc. I found a post of March 27 covering this issue, but here is what I
> get in my log:
> DEBUG [30 Jul 2007 19:43] HbSessionDataStore.java: 156 : Searching
> hbm files in class paths of epackages
> DEBUG [30 Jul 2007 19:43] StoreUtil.java: 514 : >>>> Building or
> descriptor file List
> DEBUG [30 Jul 2007 19:43] StoreUtil.java: 528 : Try path:
> ;hibernate.hbm.xml
> and then it moves on. I have tried to put the hibernate.hbm.xml file in
> the classpath (beside log4j.properties), at the root, in the package
> directory. When comparing with the above mentioned post, I don't see any
> other try path listed or !found anywhere. Any clue?
>
> Next, I have set the UPDATE_SCHEMA to false, to try to speed up the
> initialization (once the schema is stable, I believe that should be the
> standard way to go). Anyway, I now get the following after executing a
> query:
> org.hibernate.exception.SQLGrammarException: could not load an
> entity: [StInterpretationContext#1]
> at
> org.hibernate.exception.SQLStateConverter.convert(SQLStateCo nverter.java:67)
>
> at
> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExce ptionHelper.java:43)
>
> at org.hibernate.loader.Loader.loadEntity(Loader.java:1874)
> at
> org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:48)
>
> at
> org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:42)
>
> at
> org.hibernate.persister.entity.AbstractEntityPersister.load( AbstractEntityPersister.java:3042)
>
> at
> org.hibernate.event.def.DefaultLoadEventListener.loadFromDat asource(DefaultLoadEventListener.java:395)
>
> at
> org.hibernate.event.def.DefaultLoadEventListener.doLoad(Defa ultLoadEventListener.java:375)
>
> at
> org.hibernate.event.def.DefaultLoadEventListener.load(Defaul tLoadEventListener.java:139)
>
> at
> org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad (DefaultLoadEventListener.java:179)
>
> at
> org.hibernate.event.def.DefaultLoadEventListener.onLoad(Defa ultLoadEventListener.java:103)
>
> at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878 )
> at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java :846)
> at org.hibernate.type.EntityType.resolveIdentifier(EntityType.j ava:557)
> at org.hibernate.type.EntityType.resolve(EntityType.java:379)
> at
> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:116)
> at
> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:854)
>
> at org.hibernate.loader.Loader.doQuery(Loader.java:729)
> at
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
>
> at org.hibernate.loader.Loader.doList(Loader.java:2220)
> at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2104)
> at org.hibernate.loader.Loader.list(Loader.java:2099)
> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 78)
> at
> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>
> at
> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
> at test.TestSTM.main(TestSTM.java:100)
> Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
> Unknown column 'strootnode2_.concreteid' in 'field list'
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936 )
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
> at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
> at
> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedSta tement.java:1268)
>
> at
> com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatem ent.java:1403)
> at
> org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatc her.java:186)
> at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
> at org.hibernate.loader.Loader.doQuery(Loader.java:674)
> at
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
>
> at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
> ... 25 more
> this does not occur if the option is not specified. Any idea why this is
> happening?
>
> At last, what would be your most efficient "initialization" routine for
> HbDataStore. Do you need to set EPackage every time? etc.
>
> Thanks again for all your help. We're slowly but surely getting there.
>
> Alain
>
>
> Martin Taal wrote:
>> Hi Alain,
>> The following happens. The StTokenImpl has a many-to-one reference to
>> the StTokenSourceImpl. Before saving the StTokenImpl it nullifies the
>> reference to the StTokenSourceImpl because StTokenSourceImpl is not
>> yet saved in the db (this nullifying does not occur in the object but
>> in a separate array of values kept by hibernate).
>> This can be repaired by first saving StTokenSourceImpl or by setting a
>> cascade annotation on the ereference (I tried the last and it seemed
>> to work, see the attached ecore).
>>
>> gr. Martin
>>
>> Alain Picard wrote:
>>> Oops, here is the attachment
>>>
>>> Alain
>>
>>
>>
>> ------------------------------------------------------------ ------------
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <ecore:EPackage xmi:version="2.0"
>> xmlns:xmi="http://www.omg.org/XMI"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
>> name="STM_MetaModel"
>> nsURI="http://com.castortech.stm" nsPrefix="STM_MetaModel">
>> <eClassifiers xsi:type="ecore:EClass" name="StTreeRoot">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sources"
>> lowerBound="1"
>> upperBound="-1" eType="#//StTokenSource" containment="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="rootInterpreter" lowerBound="1"
>> eType="#//StInterpretationContext" containment="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StInterpretationContext">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="mainTokenSource" lowerBound="1"
>> eType="#//StTokenSource"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="root"
>> lowerBound="1" eType="#//StRootNode"
>> containment="true"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>> name="interpreterId" lowerBound="1"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StRootNode"
>> eSuperTypes="#//StConcreteNode"/>
>> <eClassifiers xsi:type="ecore:EClass" name="StBaseNode">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="parent"
>> eType="#//StBaseNode"
>> eOpposite="#//StBaseNode/children"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="children"
>> upperBound="-1"
>> eType="#//StBaseNode" containment="true"
>> eOpposite="#//StBaseNode/parent"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="nodeSources" upperBound="-1"
>> eType="#//StTokenSource"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StToken"
>> eSuperTypes="#//StBaseNode">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="coordinate"
>> eType="#//StCoordinate"
>> containment="true" eOpposite="#//StCoordinate/owner"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tokenType"
>> lowerBound="1"
>> eType="#//StTokenType"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="image"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="originalNode" eType="#//StBaseNode"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="tokenSource" lowerBound="1"
>> eType="#//StTokenSource">
>> <eAnnotations source="teneo.jpa">
>> <details key="value" value="@ManyToOne(cascade={PERSIST})"/>
>> </eAnnotations>
>> </eStructuralFeatures>
>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>> name="formattingType" lowerBound="1"
>> eType="#//StFormattingType"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="nonRegulars" upperBound="-1"
>> eType="#//StNonRegular" containment="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EEnum" name="StTokenType">
>> <eLiterals name="Regular"/>
>> <eLiterals name="Special" value="1"/>
>> <eLiterals name="EOF" value="2"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StCoordinate">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset"
>> lowerBound="1"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="length"
>> lowerBound="1"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
>> lowerBound="1" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="owner"
>> lowerBound="1" eType="#//StToken"
>> eOpposite="#//StToken/coordinate"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StTokenSource">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="uriString"
>> lowerBound="1"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tabSize"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EEnum" name="StFormattingType">
>> <eLiterals name="None"/>
>> <eLiterals name="IndentOnly" value="1"/>
>> <eLiterals name="FormatBefore" value="2"/>
>> <eLiterals name="FormatAfter" value="3" literal=""/>
>> <eLiterals name="Full" value="4"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StNonRegular">
>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>> name="nonRegularType" lowerBound="1"
>> eType="#//StNonRegularType"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="special"
>> eType="#//StToken"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="freeNode"
>> eType="#//StInterpretationContext"
>> containment="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EEnum" name="StNonRegularType">
>> <eLiterals name="Special"/>
>> <eLiterals name="FreeNode" value="1"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StConcreteNode"
>> eSuperTypes="#//StBaseNode">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="concreteId"
>> lowerBound="1"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> </eClassifiers>
>> </ecore:EPackage>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Not-null property references a null value [message #92110 is a reply to message #92093] |
Tue, 31 July 2007 02:33 |
Alain Picard Messages: 266 Registered: July 2009 |
Senior Member |
|
|
Martin,
I was using the version from July 12. After upgrading the version from the 21st, now both of my issue with the options have melted
away. Great news.
Now on the remaining point from my previous post:
If you look at the ecore that I submitted, some columns are of type EEnums. When looking at the database, those enums are not
mapped as table. Looking at previous post, and at bug 182825 and at the default for enumerated columns being ordinal (9.1.21) then
how do I get the extra tables generated and the ordinal values saved instead of the text value in a standard varchar column.
Thanks,
Alain
Martin Taal wrote:
> Alain,
> Which bug do you mean (182825 seemed to point to another bug)?
>
> Not finding the hbm file can be caused by this issue:
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=196535
>
> This was solved in the build of 18 july. Which build are you using?
>
> The other exception you get is this:
> > Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
> > Unknown column 'strootnode2_.concreteid' in 'field list'
>
> Normally this occurs because the db schema is not in sync with the
> (in-memory) mapping. Does this maybe apply to your case?
> Other than this I have no real idea why this exception occurs when
> update_schema is false.
>
> Yes the epackages are required for the initialization. The hbdatastore
> does some computation which is not required for all users (adds
> econtainer mapping and computes referer relations). But overall I don't
> think that this takes much time (I have never done performance
> measurements on that though).
>
> Setting the update_schema to false surely saves time and it is the only
> option I know for getting better start up times.
>
> gr. Martin
>
> Alain Picard wrote:
>> Martin,
>>
>> After not being able to generate the mapping and constantly getting
>> the error mentioned earlier, I decided to switch to use a joined
>> strategy.
>>
>> Well, I can now successfully save a model instance to the database.
>>
>> That being said, I am just facing more issues.
>>
>> First, off if you look at the ecore that I submitted, some columns are
>> of type EEnums. When looking at the database, those enums are not
>> mapped as table. Looking at previous post, and at bug 182825 and at
>> the default for enumerated columns being ordinal (9.1.21) then how do
>> I get the extra tables generated and the ordinal values saved instead
>> of the text value in a standard varchar column.
>>
>> 2nd, I am trying to find the best and most efficient way to
>> "initialize" the HbDataStore.
>>
>> I have tried to set the USE_MAPPING_FILE property, only to get
>> exception "org.hibernate.hql.ast.QuerySyntaxException: StTreeRoot is
>> not mapped, etc. I found a post of March 27 covering this issue, but
>> here is what I get in my log:
>> DEBUG [30 Jul 2007 19:43] HbSessionDataStore.java: 156 : Searching
>> hbm files in class paths of epackages
>> DEBUG [30 Jul 2007 19:43] StoreUtil.java: 514 : >>>> Building or
>> descriptor file List
>> DEBUG [30 Jul 2007 19:43] StoreUtil.java: 528 : Try path:
>> ;hibernate.hbm.xml
>> and then it moves on. I have tried to put the hibernate.hbm.xml file
>> in the classpath (beside log4j.properties), at the root, in the
>> package directory. When comparing with the above mentioned post, I
>> don't see any other try path listed or !found anywhere. Any clue?
>>
>> Next, I have set the UPDATE_SCHEMA to false, to try to speed up the
>> initialization (once the schema is stable, I believe that should be
>> the standard way to go). Anyway, I now get the following after
>> executing a query:
>> org.hibernate.exception.SQLGrammarException: could not load an
>> entity: [StInterpretationContext#1]
>> at
>> org.hibernate.exception.SQLStateConverter.convert(SQLStateCo nverter.java:67)
>>
>> at
>> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExce ptionHelper.java:43)
>>
>> at org.hibernate.loader.Loader.loadEntity(Loader.java:1874)
>> at
>> org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:48)
>>
>> at
>> org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:42)
>>
>> at
>> org.hibernate.persister.entity.AbstractEntityPersister.load( AbstractEntityPersister.java:3042)
>>
>> at
>> org.hibernate.event.def.DefaultLoadEventListener.loadFromDat asource(DefaultLoadEventListener.java:395)
>>
>> at
>> org.hibernate.event.def.DefaultLoadEventListener.doLoad(Defa ultLoadEventListener.java:375)
>>
>> at
>> org.hibernate.event.def.DefaultLoadEventListener.load(Defaul tLoadEventListener.java:139)
>>
>> at
>> org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad (DefaultLoadEventListener.java:179)
>>
>> at
>> org.hibernate.event.def.DefaultLoadEventListener.onLoad(Defa ultLoadEventListener.java:103)
>>
>> at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878 )
>> at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java :846)
>> at
>> org.hibernate.type.EntityType.resolveIdentifier(EntityType.j ava:557)
>> at org.hibernate.type.EntityType.resolve(EntityType.java:379)
>> at
>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:116)
>> at
>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:854)
>>
>> at org.hibernate.loader.Loader.doQuery(Loader.java:729)
>> at
>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
>>
>> at org.hibernate.loader.Loader.doList(Loader.java:2220)
>> at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2104)
>> at org.hibernate.loader.Loader.list(Loader.java:2099)
>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 78)
>> at
>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>
>> at
>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>
>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>> at test.TestSTM.main(TestSTM.java:100)
>> Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
>> Unknown column 'strootnode2_.concreteid' in 'field list'
>> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936 )
>> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
>> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
>> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
>> at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
>> at
>> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedSta tement.java:1268)
>>
>> at
>> com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatem ent.java:1403)
>>
>> at
>> org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatc her.java:186)
>> at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
>> at org.hibernate.loader.Loader.doQuery(Loader.java:674)
>> at
>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
>>
>> at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
>> ... 25 more
>> this does not occur if the option is not specified. Any idea why this
>> is happening?
>>
>> At last, what would be your most efficient "initialization" routine
>> for HbDataStore. Do you need to set EPackage every time? etc.
>>
>> Thanks again for all your help. We're slowly but surely getting there.
>>
>> Alain
>>
>>
>> Martin Taal wrote:
>>> Hi Alain,
>>> The following happens. The StTokenImpl has a many-to-one reference to
>>> the StTokenSourceImpl. Before saving the StTokenImpl it nullifies the
>>> reference to the StTokenSourceImpl because StTokenSourceImpl is not
>>> yet saved in the db (this nullifying does not occur in the object but
>>> in a separate array of values kept by hibernate).
>>> This can be repaired by first saving StTokenSourceImpl or by setting
>>> a cascade annotation on the ereference (I tried the last and it
>>> seemed to work, see the attached ecore).
>>>
>>> gr. Martin
>>>
>>> Alain Picard wrote:
>>>> Oops, here is the attachment
>>>>
>>>> Alain
>>>
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <ecore:EPackage xmi:version="2.0"
>>> xmlns:xmi="http://www.omg.org/XMI"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
>>> name="STM_MetaModel"
>>> nsURI="http://com.castortech.stm" nsPrefix="STM_MetaModel">
>>> <eClassifiers xsi:type="ecore:EClass" name="StTreeRoot">
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="sources"
>>> lowerBound="1"
>>> upperBound="-1" eType="#//StTokenSource" containment="true"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="rootInterpreter" lowerBound="1"
>>> eType="#//StInterpretationContext" containment="true"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StInterpretationContext">
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="mainTokenSource" lowerBound="1"
>>> eType="#//StTokenSource"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="root"
>>> lowerBound="1" eType="#//StRootNode"
>>> containment="true"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>> name="interpreterId" lowerBound="1"
>>> eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StRootNode"
>>> eSuperTypes="#//StConcreteNode"/>
>>> <eClassifiers xsi:type="ecore:EClass" name="StBaseNode">
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="parent"
>>> eType="#//StBaseNode"
>>> eOpposite="#//StBaseNode/children"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="children"
>>> upperBound="-1"
>>> eType="#//StBaseNode" containment="true"
>>> eOpposite="#//StBaseNode/parent"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="nodeSources" upperBound="-1"
>>> eType="#//StTokenSource"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StToken"
>>> eSuperTypes="#//StBaseNode">
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="coordinate" eType="#//StCoordinate"
>>> containment="true" eOpposite="#//StCoordinate/owner"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tokenType"
>>> lowerBound="1"
>>> eType="#//StTokenType"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="image"
>>> eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind"
>>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="originalNode" eType="#//StBaseNode"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="tokenSource" lowerBound="1"
>>> eType="#//StTokenSource">
>>> <eAnnotations source="teneo.jpa">
>>> <details key="value" value="@ManyToOne(cascade={PERSIST})"/>
>>> </eAnnotations>
>>> </eStructuralFeatures>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>> name="formattingType" lowerBound="1"
>>> eType="#//StFormattingType"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="nonRegulars" upperBound="-1"
>>> eType="#//StNonRegular" containment="true"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EEnum" name="StTokenType">
>>> <eLiterals name="Regular"/>
>>> <eLiterals name="Special" value="1"/>
>>> <eLiterals name="EOF" value="2"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StCoordinate">
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset"
>>> lowerBound="1"
>>> eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="length"
>>> lowerBound="1"
>>> eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
>>> lowerBound="1" eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="owner"
>>> lowerBound="1" eType="#//StToken"
>>> eOpposite="#//StToken/coordinate"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StTokenSource">
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="uriString"
>>> lowerBound="1"
>>> eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tabSize"
>>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EEnum" name="StFormattingType">
>>> <eLiterals name="None"/>
>>> <eLiterals name="IndentOnly" value="1"/>
>>> <eLiterals name="FormatBefore" value="2"/>
>>> <eLiterals name="FormatAfter" value="3" literal=""/>
>>> <eLiterals name="Full" value="4"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StNonRegular">
>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>> name="nonRegularType" lowerBound="1"
>>> eType="#//StNonRegularType"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="special"
>>> eType="#//StToken"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="freeNode"
>>> eType="#//StInterpretationContext"
>>> containment="true"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EEnum" name="StNonRegularType">
>>> <eLiterals name="Special"/>
>>> <eLiterals name="FreeNode" value="1"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StConcreteNode"
>>> eSuperTypes="#//StBaseNode">
>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>> name="concreteId" lowerBound="1"
>>> eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>> </eClassifiers>
>>> </ecore:EPackage>
>
>
|
|
|
Re: [Teneo] Not-null property references a null value [message #92155 is a reply to message #92110] |
Tue, 31 July 2007 12:09 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Alain,
Yes it is true that the current default is String and not Ordinal. Overall in my view String is
better (at least it was for me). You can change this behavior by setting an @Enumerated annotation
in the edatatype of the enum.
A global option can also be of use here, please enter a bugzilla if you find that better.
I am not sure why you want to have the enumerated efeature stored in a separate table. Is it a list
of enumerates?
gr. Martin
Alain Picard wrote:
> Martin,
>
> I was using the version from July 12. After upgrading the version from
> the 21st, now both of my issue with the options have melted away. Great
> news.
>
> Now on the remaining point from my previous post:
> If you look at the ecore that I submitted, some columns are of type
> EEnums. When looking at the database, those enums are not mapped as
> table. Looking at previous post, and at bug 182825 and at the default
> for enumerated columns being ordinal (9.1.21) then how do I get the
> extra tables generated and the ordinal values saved instead of the text
> value in a standard varchar column.
>
> Thanks,
> Alain
>
>
> Martin Taal wrote:
>> Alain,
>> Which bug do you mean (182825 seemed to point to another bug)?
>>
>> Not finding the hbm file can be caused by this issue:
>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=196535
>>
>> This was solved in the build of 18 july. Which build are you using?
>>
>> The other exception you get is this:
>> > Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
>> > Unknown column 'strootnode2_.concreteid' in 'field list'
>>
>> Normally this occurs because the db schema is not in sync with the
>> (in-memory) mapping. Does this maybe apply to your case?
>> Other than this I have no real idea why this exception occurs when
>> update_schema is false.
>>
>> Yes the epackages are required for the initialization. The hbdatastore
>> does some computation which is not required for all users (adds
>> econtainer mapping and computes referer relations). But overall I
>> don't think that this takes much time (I have never done performance
>> measurements on that though).
>>
>> Setting the update_schema to false surely saves time and it is the
>> only option I know for getting better start up times.
>>
>> gr. Martin
>>
>> Alain Picard wrote:
>>> Martin,
>>>
>>> After not being able to generate the mapping and constantly getting
>>> the error mentioned earlier, I decided to switch to use a joined
>>> strategy.
>>>
>>> Well, I can now successfully save a model instance to the database.
>>>
>>> That being said, I am just facing more issues.
>>>
>>> First, off if you look at the ecore that I submitted, some columns
>>> are of type EEnums. When looking at the database, those enums are not
>>> mapped as table. Looking at previous post, and at bug 182825 and at
>>> the default for enumerated columns being ordinal (9.1.21) then how do
>>> I get the extra tables generated and the ordinal values saved instead
>>> of the text value in a standard varchar column.
>>>
>>> 2nd, I am trying to find the best and most efficient way to
>>> "initialize" the HbDataStore.
>>>
>>> I have tried to set the USE_MAPPING_FILE property, only to get
>>> exception "org.hibernate.hql.ast.QuerySyntaxException: StTreeRoot is
>>> not mapped, etc. I found a post of March 27 covering this issue, but
>>> here is what I get in my log:
>>> DEBUG [30 Jul 2007 19:43] HbSessionDataStore.java: 156 : Searching
>>> hbm files in class paths of epackages
>>> DEBUG [30 Jul 2007 19:43] StoreUtil.java: 514 : >>>> Building or
>>> descriptor file List
>>> DEBUG [30 Jul 2007 19:43] StoreUtil.java: 528 : Try path:
>>> ;hibernate.hbm.xml
>>> and then it moves on. I have tried to put the hibernate.hbm.xml file
>>> in the classpath (beside log4j.properties), at the root, in the
>>> package directory. When comparing with the above mentioned post, I
>>> don't see any other try path listed or !found anywhere. Any clue?
>>>
>>> Next, I have set the UPDATE_SCHEMA to false, to try to speed up the
>>> initialization (once the schema is stable, I believe that should be
>>> the standard way to go). Anyway, I now get the following after
>>> executing a query:
>>> org.hibernate.exception.SQLGrammarException: could not load an
>>> entity: [StInterpretationContext#1]
>>> at
>>> org.hibernate.exception.SQLStateConverter.convert(SQLStateCo nverter.java:67)
>>>
>>> at
>>> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExce ptionHelper.java:43)
>>>
>>> at org.hibernate.loader.Loader.loadEntity(Loader.java:1874)
>>> at
>>> org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:48)
>>>
>>> at
>>> org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:42)
>>>
>>> at
>>> org.hibernate.persister.entity.AbstractEntityPersister.load( AbstractEntityPersister.java:3042)
>>>
>>> at
>>> org.hibernate.event.def.DefaultLoadEventListener.loadFromDat asource(DefaultLoadEventListener.java:395)
>>>
>>> at
>>> org.hibernate.event.def.DefaultLoadEventListener.doLoad(Defa ultLoadEventListener.java:375)
>>>
>>> at
>>> org.hibernate.event.def.DefaultLoadEventListener.load(Defaul tLoadEventListener.java:139)
>>>
>>> at
>>> org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad (DefaultLoadEventListener.java:179)
>>>
>>> at
>>> org.hibernate.event.def.DefaultLoadEventListener.onLoad(Defa ultLoadEventListener.java:103)
>>>
>>> at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878 )
>>> at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java :846)
>>> at
>>> org.hibernate.type.EntityType.resolveIdentifier(EntityType.j ava:557)
>>> at org.hibernate.type.EntityType.resolve(EntityType.java:379)
>>> at
>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:116)
>>>
>>> at
>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:854)
>>>
>>> at org.hibernate.loader.Loader.doQuery(Loader.java:729)
>>> at
>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
>>>
>>> at org.hibernate.loader.Loader.doList(Loader.java:2220)
>>> at
>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2104)
>>> at org.hibernate.loader.Loader.list(Loader.java:2099)
>>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 78)
>>> at
>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>
>>> at
>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>
>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>> at test.TestSTM.main(TestSTM.java:100)
>>> Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
>>> Unknown column 'strootnode2_.concreteid' in 'field list'
>>> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936 )
>>> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
>>> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
>>> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
>>> at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
>>> at
>>> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedSta tement.java:1268)
>>>
>>> at
>>> com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatem ent.java:1403)
>>>
>>> at
>>> org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatc her.java:186)
>>>
>>> at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
>>> at org.hibernate.loader.Loader.doQuery(Loader.java:674)
>>> at
>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
>>>
>>> at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
>>> ... 25 more
>>> this does not occur if the option is not specified. Any idea why this
>>> is happening?
>>>
>>> At last, what would be your most efficient "initialization" routine
>>> for HbDataStore. Do you need to set EPackage every time? etc.
>>>
>>> Thanks again for all your help. We're slowly but surely getting there.
>>>
>>> Alain
>>>
>>>
>>> Martin Taal wrote:
>>>> Hi Alain,
>>>> The following happens. The StTokenImpl has a many-to-one reference
>>>> to the StTokenSourceImpl. Before saving the StTokenImpl it nullifies
>>>> the reference to the StTokenSourceImpl because StTokenSourceImpl is
>>>> not yet saved in the db (this nullifying does not occur in the
>>>> object but in a separate array of values kept by hibernate).
>>>> This can be repaired by first saving StTokenSourceImpl or by setting
>>>> a cascade annotation on the ereference (I tried the last and it
>>>> seemed to work, see the attached ecore).
>>>>
>>>> gr. Martin
>>>>
>>>> Alain Picard wrote:
>>>>> Oops, here is the attachment
>>>>>
>>>>> Alain
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------ ------------
>>>>
>>>>e
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <ecore:EPackage xmi:version="2.0"
>>>> xmlns:xmi="http://www.omg.org/XMI"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
>>>> name="STM_MetaModel"
>>>> nsURI="http://com.castortech.stm" nsPrefix="STM_MetaModel">
>>>> <eClassifiers xsi:type="ecore:EClass" name="StTreeRoot">
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="sources"
>>>> lowerBound="1"
>>>> upperBound="-1" eType="#//StTokenSource" containment="true"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="rootInterpreter" lowerBound="1"
>>>> eType="#//StInterpretationContext" containment="true"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StInterpretationContext">
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="mainTokenSource" lowerBound="1"
>>>> eType="#//StTokenSource"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="root"
>>>> lowerBound="1" eType="#//StRootNode"
>>>> containment="true"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="interpreterId" lowerBound="1"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StRootNode"
>>>> eSuperTypes="#//StConcreteNode"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StBaseNode">
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="parent"
>>>> eType="#//StBaseNode"
>>>> eOpposite="#//StBaseNode/children"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="children"
>>>> upperBound="-1"
>>>> eType="#//StBaseNode" containment="true"
>>>> eOpposite="#//StBaseNode/parent"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="nodeSources" upperBound="-1"
>>>> eType="#//StTokenSource"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StToken"
>>>> eSuperTypes="#//StBaseNode">
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="coordinate" eType="#//StCoordinate"
>>>> containment="true" eOpposite="#//StCoordinate/owner"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="tokenType" lowerBound="1"
>>>> eType="#//StTokenType"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="image"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind"
>>>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="originalNode" eType="#//StBaseNode"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="tokenSource" lowerBound="1"
>>>> eType="#//StTokenSource">
>>>> <eAnnotations source="teneo.jpa">
>>>> <details key="value" value="@ManyToOne(cascade={PERSIST})"/>
>>>> </eAnnotations>
>>>> </eStructuralFeatures>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="formattingType" lowerBound="1"
>>>> eType="#//StFormattingType"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="nonRegulars" upperBound="-1"
>>>> eType="#//StNonRegular" containment="true"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EEnum" name="StTokenType">
>>>> <eLiterals name="Regular"/>
>>>> <eLiterals name="Special" value="1"/>
>>>> <eLiterals name="EOF" value="2"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StCoordinate">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset"
>>>> lowerBound="1"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="length"
>>>> lowerBound="1"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
>>>> lowerBound="1" eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="owner"
>>>> lowerBound="1" eType="#//StToken"
>>>> eOpposite="#//StToken/coordinate"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StTokenSource">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="uriString" lowerBound="1"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tabSize"
>>>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EEnum" name="StFormattingType">
>>>> <eLiterals name="None"/>
>>>> <eLiterals name="IndentOnly" value="1"/>
>>>> <eLiterals name="FormatBefore" value="2"/>
>>>> <eLiterals name="FormatAfter" value="3" literal=""/>
>>>> <eLiterals name="Full" value="4"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StNonRegular">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="nonRegularType" lowerBound="1"
>>>> eType="#//StNonRegularType"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="special"
>>>> eType="#//StToken"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="freeNode"
>>>> eType="#//StInterpretationContext"
>>>> containment="true"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EEnum" name="StNonRegularType">
>>>> <eLiterals name="Special"/>
>>>> <eLiterals name="FreeNode" value="1"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StConcreteNode"
>>>> eSuperTypes="#//StBaseNode">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="concreteId" lowerBound="1"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> </eClassifiers>
>>>> </ecore:EPackage>
>>
>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
| | | | | | |
Re: [Teneo] Not-null property references a null value [message #609364 is a reply to message #92031] |
Tue, 31 July 2007 00:49 |
Alain Picard Messages: 266 Registered: July 2009 |
Senior Member |
|
|
Martin,
After not being able to generate the mapping and constantly getting the error mentioned earlier, I decided to switch to use a joined
strategy.
Well, I can now successfully save a model instance to the database.
That being said, I am just facing more issues.
First, off if you look at the ecore that I submitted, some columns are of type EEnums. When looking at the database, those enums are
not mapped as table. Looking at previous post, and at bug 182825 and at the default for enumerated columns being ordinal (9.1.21)
then how do I get the extra tables generated and the ordinal values saved instead of the text value in a standard varchar column.
2nd, I am trying to find the best and most efficient way to "initialize" the HbDataStore.
I have tried to set the USE_MAPPING_FILE property, only to get exception "org.hibernate.hql.ast.QuerySyntaxException: StTreeRoot is
not mapped, etc. I found a post of March 27 covering this issue, but here is what I get in my log:
DEBUG [30 Jul 2007 19:43] HbSessionDataStore.java: 156 : Searching hbm files in class paths of epackages
DEBUG [30 Jul 2007 19:43] StoreUtil.java: 514 : >>>> Building or descriptor file List
DEBUG [30 Jul 2007 19:43] StoreUtil.java: 528 : Try path: ;hibernate.hbm.xml
and then it moves on. I have tried to put the hibernate.hbm.xml file in the classpath (beside log4j.properties), at the root, in the
package directory. When comparing with the above mentioned post, I don't see any other try path listed or !found anywhere. Any clue?
Next, I have set the UPDATE_SCHEMA to false, to try to speed up the initialization (once the schema is stable, I believe that should
be the standard way to go). Anyway, I now get the following after executing a query:
org.hibernate.exception.SQLGrammarException: could not load an entity: [StInterpretationContext#1]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateCo nverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExce ptionHelper.java:43)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1874)
at org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:48)
at org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:42)
at org.hibernate.persister.entity.AbstractEntityPersister.load( AbstractEntityPersister.java:3042)
at org.hibernate.event.def.DefaultLoadEventListener.loadFromDat asource(DefaultLoadEventListener.java:395)
at org.hibernate.event.def.DefaultLoadEventListener.doLoad(Defa ultLoadEventListener.java:375)
at org.hibernate.event.def.DefaultLoadEventListener.load(Defaul tLoadEventListener.java:139)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad (DefaultLoadEventListener.java:179)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(Defa ultLoadEventListener.java:103)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878 )
at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java :846)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.j ava:557)
at org.hibernate.type.EntityType.resolve(EntityType.java:379)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:116)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:854)
at org.hibernate.loader.Loader.doQuery(Loader.java:729)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 78)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at test.TestSTM.main(TestSTM.java:100)
Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown column 'strootnode2_.concreteid' in 'field list'
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936 )
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedSta tement.java:1268)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatem ent.java:1403)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatc her.java:186)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
... 25 more
this does not occur if the option is not specified. Any idea why this is happening?
At last, what would be your most efficient "initialization" routine for HbDataStore. Do you need to set EPackage every time? etc.
Thanks again for all your help. We're slowly but surely getting there.
Alain
Martin Taal wrote:
> Hi Alain,
> The following happens. The StTokenImpl has a many-to-one reference to
> the StTokenSourceImpl. Before saving the StTokenImpl it nullifies the
> reference to the StTokenSourceImpl because StTokenSourceImpl is not yet
> saved in the db (this nullifying does not occur in the object but in a
> separate array of values kept by hibernate).
> This can be repaired by first saving StTokenSourceImpl or by setting a
> cascade annotation on the ereference (I tried the last and it seemed to
> work, see the attached ecore).
>
> gr. Martin
>
> Alain Picard wrote:
>> Oops, here is the attachment
>>
>> Alain
>
>
>
> ------------------------------------------------------------ ------------
>
> <?xml version="1.0" encoding="UTF-8"?>
> <ecore:EPackage xmi:version="2.0"
> xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="STM_MetaModel"
> nsURI="http://com.castortech.stm" nsPrefix="STM_MetaModel">
> <eClassifiers xsi:type="ecore:EClass" name="StTreeRoot">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sources" lowerBound="1"
> upperBound="-1" eType="#//StTokenSource" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="rootInterpreter" lowerBound="1"
> eType="#//StInterpretationContext" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StInterpretationContext">
> <eStructuralFeatures xsi:type="ecore:EReference" name="mainTokenSource" lowerBound="1"
> eType="#//StTokenSource"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="root" lowerBound="1" eType="#//StRootNode"
> containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="interpreterId" lowerBound="1"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StRootNode" eSuperTypes="#//StConcreteNode"/>
> <eClassifiers xsi:type="ecore:EClass" name="StBaseNode">
> <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//StBaseNode"
> eOpposite="#//StBaseNode/children"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1"
> eType="#//StBaseNode" containment="true" eOpposite="#//StBaseNode/parent"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="nodeSources" upperBound="-1"
> eType="#//StTokenSource"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StToken" eSuperTypes="#//StBaseNode">
> <eStructuralFeatures xsi:type="ecore:EReference" name="coordinate" eType="#//StCoordinate"
> containment="true" eOpposite="#//StCoordinate/owner"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tokenType" lowerBound="1"
> eType="#//StTokenType"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="image" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="originalNode" eType="#//StBaseNode"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="tokenSource" lowerBound="1"
> eType="#//StTokenSource">
> <eAnnotations source="teneo.jpa">
> <details key="value" value="@ManyToOne(cascade={PERSIST})"/>
> </eAnnotations>
> </eStructuralFeatures>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="formattingType" lowerBound="1"
> eType="#//StFormattingType"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="nonRegulars" upperBound="-1"
> eType="#//StNonRegular" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EEnum" name="StTokenType">
> <eLiterals name="Regular"/>
> <eLiterals name="Special" value="1"/>
> <eLiterals name="EOF" value="2"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StCoordinate">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" lowerBound="1"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="length" lowerBound="1"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="owner" lowerBound="1" eType="#//StToken"
> eOpposite="#//StToken/coordinate"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StTokenSource">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="uriString" lowerBound="1"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tabSize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EEnum" name="StFormattingType">
> <eLiterals name="None"/>
> <eLiterals name="IndentOnly" value="1"/>
> <eLiterals name="FormatBefore" value="2"/>
> <eLiterals name="FormatAfter" value="3" literal=""/>
> <eLiterals name="Full" value="4"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StNonRegular">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonRegularType" lowerBound="1"
> eType="#//StNonRegularType"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="special" eType="#//StToken"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="freeNode" eType="#//StInterpretationContext"
> containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EEnum" name="StNonRegularType">
> <eLiterals name="Special"/>
> <eLiterals name="FreeNode" value="1"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="StConcreteNode" eSuperTypes="#//StBaseNode">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="concreteId" lowerBound="1"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> </eClassifiers>
> </ecore:EPackage>
|
|
|
Re: [Teneo] Not-null property references a null value [message #609367 is a reply to message #92077] |
Tue, 31 July 2007 01:08 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Alain,
Which bug do you mean (182825 seemed to point to another bug)?
Not finding the hbm file can be caused by this issue:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=196535
This was solved in the build of 18 july. Which build are you using?
The other exception you get is this:
> Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
> Unknown column 'strootnode2_.concreteid' in 'field list'
Normally this occurs because the db schema is not in sync with the (in-memory) mapping. Does this
maybe apply to your case?
Other than this I have no real idea why this exception occurs when update_schema is false.
Yes the epackages are required for the initialization. The hbdatastore does some computation which
is not required for all users (adds econtainer mapping and computes referer relations). But overall
I don't think that this takes much time (I have never done performance measurements on that though).
Setting the update_schema to false surely saves time and it is the only option I know for getting
better start up times.
gr. Martin
Alain Picard wrote:
> Martin,
>
> After not being able to generate the mapping and constantly getting the
> error mentioned earlier, I decided to switch to use a joined strategy.
>
> Well, I can now successfully save a model instance to the database.
>
> That being said, I am just facing more issues.
>
> First, off if you look at the ecore that I submitted, some columns are
> of type EEnums. When looking at the database, those enums are not mapped
> as table. Looking at previous post, and at bug 182825 and at the default
> for enumerated columns being ordinal (9.1.21) then how do I get the
> extra tables generated and the ordinal values saved instead of the text
> value in a standard varchar column.
>
> 2nd, I am trying to find the best and most efficient way to "initialize"
> the HbDataStore.
>
> I have tried to set the USE_MAPPING_FILE property, only to get exception
> "org.hibernate.hql.ast.QuerySyntaxException: StTreeRoot is not mapped,
> etc. I found a post of March 27 covering this issue, but here is what I
> get in my log:
> DEBUG [30 Jul 2007 19:43] HbSessionDataStore.java: 156 : Searching
> hbm files in class paths of epackages
> DEBUG [30 Jul 2007 19:43] StoreUtil.java: 514 : >>>> Building or
> descriptor file List
> DEBUG [30 Jul 2007 19:43] StoreUtil.java: 528 : Try path:
> ;hibernate.hbm.xml
> and then it moves on. I have tried to put the hibernate.hbm.xml file in
> the classpath (beside log4j.properties), at the root, in the package
> directory. When comparing with the above mentioned post, I don't see any
> other try path listed or !found anywhere. Any clue?
>
> Next, I have set the UPDATE_SCHEMA to false, to try to speed up the
> initialization (once the schema is stable, I believe that should be the
> standard way to go). Anyway, I now get the following after executing a
> query:
> org.hibernate.exception.SQLGrammarException: could not load an
> entity: [StInterpretationContext#1]
> at
> org.hibernate.exception.SQLStateConverter.convert(SQLStateCo nverter.java:67)
>
> at
> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExce ptionHelper.java:43)
>
> at org.hibernate.loader.Loader.loadEntity(Loader.java:1874)
> at
> org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:48)
>
> at
> org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:42)
>
> at
> org.hibernate.persister.entity.AbstractEntityPersister.load( AbstractEntityPersister.java:3042)
>
> at
> org.hibernate.event.def.DefaultLoadEventListener.loadFromDat asource(DefaultLoadEventListener.java:395)
>
> at
> org.hibernate.event.def.DefaultLoadEventListener.doLoad(Defa ultLoadEventListener.java:375)
>
> at
> org.hibernate.event.def.DefaultLoadEventListener.load(Defaul tLoadEventListener.java:139)
>
> at
> org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad (DefaultLoadEventListener.java:179)
>
> at
> org.hibernate.event.def.DefaultLoadEventListener.onLoad(Defa ultLoadEventListener.java:103)
>
> at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878 )
> at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java :846)
> at org.hibernate.type.EntityType.resolveIdentifier(EntityType.j ava:557)
> at org.hibernate.type.EntityType.resolve(EntityType.java:379)
> at
> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:116)
> at
> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:854)
>
> at org.hibernate.loader.Loader.doQuery(Loader.java:729)
> at
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
>
> at org.hibernate.loader.Loader.doList(Loader.java:2220)
> at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2104)
> at org.hibernate.loader.Loader.list(Loader.java:2099)
> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 78)
> at
> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>
> at
> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
> at test.TestSTM.main(TestSTM.java:100)
> Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
> Unknown column 'strootnode2_.concreteid' in 'field list'
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936 )
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
> at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
> at
> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedSta tement.java:1268)
>
> at
> com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatem ent.java:1403)
> at
> org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatc her.java:186)
> at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
> at org.hibernate.loader.Loader.doQuery(Loader.java:674)
> at
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
>
> at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
> ... 25 more
> this does not occur if the option is not specified. Any idea why this is
> happening?
>
> At last, what would be your most efficient "initialization" routine for
> HbDataStore. Do you need to set EPackage every time? etc.
>
> Thanks again for all your help. We're slowly but surely getting there.
>
> Alain
>
>
> Martin Taal wrote:
>> Hi Alain,
>> The following happens. The StTokenImpl has a many-to-one reference to
>> the StTokenSourceImpl. Before saving the StTokenImpl it nullifies the
>> reference to the StTokenSourceImpl because StTokenSourceImpl is not
>> yet saved in the db (this nullifying does not occur in the object but
>> in a separate array of values kept by hibernate).
>> This can be repaired by first saving StTokenSourceImpl or by setting a
>> cascade annotation on the ereference (I tried the last and it seemed
>> to work, see the attached ecore).
>>
>> gr. Martin
>>
>> Alain Picard wrote:
>>> Oops, here is the attachment
>>>
>>> Alain
>>
>>
>>
>> ------------------------------------------------------------ ------------
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <ecore:EPackage xmi:version="2.0"
>> xmlns:xmi="http://www.omg.org/XMI"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
>> name="STM_MetaModel"
>> nsURI="http://com.castortech.stm" nsPrefix="STM_MetaModel">
>> <eClassifiers xsi:type="ecore:EClass" name="StTreeRoot">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sources"
>> lowerBound="1"
>> upperBound="-1" eType="#//StTokenSource" containment="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="rootInterpreter" lowerBound="1"
>> eType="#//StInterpretationContext" containment="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StInterpretationContext">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="mainTokenSource" lowerBound="1"
>> eType="#//StTokenSource"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="root"
>> lowerBound="1" eType="#//StRootNode"
>> containment="true"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>> name="interpreterId" lowerBound="1"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StRootNode"
>> eSuperTypes="#//StConcreteNode"/>
>> <eClassifiers xsi:type="ecore:EClass" name="StBaseNode">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="parent"
>> eType="#//StBaseNode"
>> eOpposite="#//StBaseNode/children"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="children"
>> upperBound="-1"
>> eType="#//StBaseNode" containment="true"
>> eOpposite="#//StBaseNode/parent"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="nodeSources" upperBound="-1"
>> eType="#//StTokenSource"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StToken"
>> eSuperTypes="#//StBaseNode">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="coordinate"
>> eType="#//StCoordinate"
>> containment="true" eOpposite="#//StCoordinate/owner"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tokenType"
>> lowerBound="1"
>> eType="#//StTokenType"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="image"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="originalNode" eType="#//StBaseNode"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="tokenSource" lowerBound="1"
>> eType="#//StTokenSource">
>> <eAnnotations source="teneo.jpa">
>> <details key="value" value="@ManyToOne(cascade={PERSIST})"/>
>> </eAnnotations>
>> </eStructuralFeatures>
>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>> name="formattingType" lowerBound="1"
>> eType="#//StFormattingType"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="nonRegulars" upperBound="-1"
>> eType="#//StNonRegular" containment="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EEnum" name="StTokenType">
>> <eLiterals name="Regular"/>
>> <eLiterals name="Special" value="1"/>
>> <eLiterals name="EOF" value="2"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StCoordinate">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset"
>> lowerBound="1"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="length"
>> lowerBound="1"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
>> lowerBound="1" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="owner"
>> lowerBound="1" eType="#//StToken"
>> eOpposite="#//StToken/coordinate"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StTokenSource">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="uriString"
>> lowerBound="1"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tabSize"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EEnum" name="StFormattingType">
>> <eLiterals name="None"/>
>> <eLiterals name="IndentOnly" value="1"/>
>> <eLiterals name="FormatBefore" value="2"/>
>> <eLiterals name="FormatAfter" value="3" literal=""/>
>> <eLiterals name="Full" value="4"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StNonRegular">
>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>> name="nonRegularType" lowerBound="1"
>> eType="#//StNonRegularType"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="special"
>> eType="#//StToken"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="freeNode"
>> eType="#//StInterpretationContext"
>> containment="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EEnum" name="StNonRegularType">
>> <eLiterals name="Special"/>
>> <eLiterals name="FreeNode" value="1"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="StConcreteNode"
>> eSuperTypes="#//StBaseNode">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="concreteId"
>> lowerBound="1"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> </eClassifiers>
>> </ecore:EPackage>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Not-null property references a null value [message #609372 is a reply to message #92093] |
Tue, 31 July 2007 02:33 |
Alain Picard Messages: 266 Registered: July 2009 |
Senior Member |
|
|
Martin,
I was using the version from July 12. After upgrading the version from the 21st, now both of my issue with the options have melted
away. Great news.
Now on the remaining point from my previous post:
If you look at the ecore that I submitted, some columns are of type EEnums. When looking at the database, those enums are not
mapped as table. Looking at previous post, and at bug 182825 and at the default for enumerated columns being ordinal (9.1.21) then
how do I get the extra tables generated and the ordinal values saved instead of the text value in a standard varchar column.
Thanks,
Alain
Martin Taal wrote:
> Alain,
> Which bug do you mean (182825 seemed to point to another bug)?
>
> Not finding the hbm file can be caused by this issue:
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=196535
>
> This was solved in the build of 18 july. Which build are you using?
>
> The other exception you get is this:
> > Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
> > Unknown column 'strootnode2_.concreteid' in 'field list'
>
> Normally this occurs because the db schema is not in sync with the
> (in-memory) mapping. Does this maybe apply to your case?
> Other than this I have no real idea why this exception occurs when
> update_schema is false.
>
> Yes the epackages are required for the initialization. The hbdatastore
> does some computation which is not required for all users (adds
> econtainer mapping and computes referer relations). But overall I don't
> think that this takes much time (I have never done performance
> measurements on that though).
>
> Setting the update_schema to false surely saves time and it is the only
> option I know for getting better start up times.
>
> gr. Martin
>
> Alain Picard wrote:
>> Martin,
>>
>> After not being able to generate the mapping and constantly getting
>> the error mentioned earlier, I decided to switch to use a joined
>> strategy.
>>
>> Well, I can now successfully save a model instance to the database.
>>
>> That being said, I am just facing more issues.
>>
>> First, off if you look at the ecore that I submitted, some columns are
>> of type EEnums. When looking at the database, those enums are not
>> mapped as table. Looking at previous post, and at bug 182825 and at
>> the default for enumerated columns being ordinal (9.1.21) then how do
>> I get the extra tables generated and the ordinal values saved instead
>> of the text value in a standard varchar column.
>>
>> 2nd, I am trying to find the best and most efficient way to
>> "initialize" the HbDataStore.
>>
>> I have tried to set the USE_MAPPING_FILE property, only to get
>> exception "org.hibernate.hql.ast.QuerySyntaxException: StTreeRoot is
>> not mapped, etc. I found a post of March 27 covering this issue, but
>> here is what I get in my log:
>> DEBUG [30 Jul 2007 19:43] HbSessionDataStore.java: 156 : Searching
>> hbm files in class paths of epackages
>> DEBUG [30 Jul 2007 19:43] StoreUtil.java: 514 : >>>> Building or
>> descriptor file List
>> DEBUG [30 Jul 2007 19:43] StoreUtil.java: 528 : Try path:
>> ;hibernate.hbm.xml
>> and then it moves on. I have tried to put the hibernate.hbm.xml file
>> in the classpath (beside log4j.properties), at the root, in the
>> package directory. When comparing with the above mentioned post, I
>> don't see any other try path listed or !found anywhere. Any clue?
>>
>> Next, I have set the UPDATE_SCHEMA to false, to try to speed up the
>> initialization (once the schema is stable, I believe that should be
>> the standard way to go). Anyway, I now get the following after
>> executing a query:
>> org.hibernate.exception.SQLGrammarException: could not load an
>> entity: [StInterpretationContext#1]
>> at
>> org.hibernate.exception.SQLStateConverter.convert(SQLStateCo nverter.java:67)
>>
>> at
>> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExce ptionHelper.java:43)
>>
>> at org.hibernate.loader.Loader.loadEntity(Loader.java:1874)
>> at
>> org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:48)
>>
>> at
>> org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:42)
>>
>> at
>> org.hibernate.persister.entity.AbstractEntityPersister.load( AbstractEntityPersister.java:3042)
>>
>> at
>> org.hibernate.event.def.DefaultLoadEventListener.loadFromDat asource(DefaultLoadEventListener.java:395)
>>
>> at
>> org.hibernate.event.def.DefaultLoadEventListener.doLoad(Defa ultLoadEventListener.java:375)
>>
>> at
>> org.hibernate.event.def.DefaultLoadEventListener.load(Defaul tLoadEventListener.java:139)
>>
>> at
>> org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad (DefaultLoadEventListener.java:179)
>>
>> at
>> org.hibernate.event.def.DefaultLoadEventListener.onLoad(Defa ultLoadEventListener.java:103)
>>
>> at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878 )
>> at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java :846)
>> at
>> org.hibernate.type.EntityType.resolveIdentifier(EntityType.j ava:557)
>> at org.hibernate.type.EntityType.resolve(EntityType.java:379)
>> at
>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:116)
>> at
>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:854)
>>
>> at org.hibernate.loader.Loader.doQuery(Loader.java:729)
>> at
>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
>>
>> at org.hibernate.loader.Loader.doList(Loader.java:2220)
>> at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2104)
>> at org.hibernate.loader.Loader.list(Loader.java:2099)
>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 78)
>> at
>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>
>> at
>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>
>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>> at test.TestSTM.main(TestSTM.java:100)
>> Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
>> Unknown column 'strootnode2_.concreteid' in 'field list'
>> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936 )
>> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
>> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
>> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
>> at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
>> at
>> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedSta tement.java:1268)
>>
>> at
>> com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatem ent.java:1403)
>>
>> at
>> org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatc her.java:186)
>> at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
>> at org.hibernate.loader.Loader.doQuery(Loader.java:674)
>> at
>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
>>
>> at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
>> ... 25 more
>> this does not occur if the option is not specified. Any idea why this
>> is happening?
>>
>> At last, what would be your most efficient "initialization" routine
>> for HbDataStore. Do you need to set EPackage every time? etc.
>>
>> Thanks again for all your help. We're slowly but surely getting there.
>>
>> Alain
>>
>>
>> Martin Taal wrote:
>>> Hi Alain,
>>> The following happens. The StTokenImpl has a many-to-one reference to
>>> the StTokenSourceImpl. Before saving the StTokenImpl it nullifies the
>>> reference to the StTokenSourceImpl because StTokenSourceImpl is not
>>> yet saved in the db (this nullifying does not occur in the object but
>>> in a separate array of values kept by hibernate).
>>> This can be repaired by first saving StTokenSourceImpl or by setting
>>> a cascade annotation on the ereference (I tried the last and it
>>> seemed to work, see the attached ecore).
>>>
>>> gr. Martin
>>>
>>> Alain Picard wrote:
>>>> Oops, here is the attachment
>>>>
>>>> Alain
>>>
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <ecore:EPackage xmi:version="2.0"
>>> xmlns:xmi="http://www.omg.org/XMI"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
>>> name="STM_MetaModel"
>>> nsURI="http://com.castortech.stm" nsPrefix="STM_MetaModel">
>>> <eClassifiers xsi:type="ecore:EClass" name="StTreeRoot">
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="sources"
>>> lowerBound="1"
>>> upperBound="-1" eType="#//StTokenSource" containment="true"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="rootInterpreter" lowerBound="1"
>>> eType="#//StInterpretationContext" containment="true"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StInterpretationContext">
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="mainTokenSource" lowerBound="1"
>>> eType="#//StTokenSource"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="root"
>>> lowerBound="1" eType="#//StRootNode"
>>> containment="true"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>> name="interpreterId" lowerBound="1"
>>> eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StRootNode"
>>> eSuperTypes="#//StConcreteNode"/>
>>> <eClassifiers xsi:type="ecore:EClass" name="StBaseNode">
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="parent"
>>> eType="#//StBaseNode"
>>> eOpposite="#//StBaseNode/children"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="children"
>>> upperBound="-1"
>>> eType="#//StBaseNode" containment="true"
>>> eOpposite="#//StBaseNode/parent"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="nodeSources" upperBound="-1"
>>> eType="#//StTokenSource"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StToken"
>>> eSuperTypes="#//StBaseNode">
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="coordinate" eType="#//StCoordinate"
>>> containment="true" eOpposite="#//StCoordinate/owner"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tokenType"
>>> lowerBound="1"
>>> eType="#//StTokenType"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="image"
>>> eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind"
>>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="originalNode" eType="#//StBaseNode"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="tokenSource" lowerBound="1"
>>> eType="#//StTokenSource">
>>> <eAnnotations source="teneo.jpa">
>>> <details key="value" value="@ManyToOne(cascade={PERSIST})"/>
>>> </eAnnotations>
>>> </eStructuralFeatures>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>> name="formattingType" lowerBound="1"
>>> eType="#//StFormattingType"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>> name="nonRegulars" upperBound="-1"
>>> eType="#//StNonRegular" containment="true"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EEnum" name="StTokenType">
>>> <eLiterals name="Regular"/>
>>> <eLiterals name="Special" value="1"/>
>>> <eLiterals name="EOF" value="2"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StCoordinate">
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset"
>>> lowerBound="1"
>>> eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="length"
>>> lowerBound="1"
>>> eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
>>> lowerBound="1" eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="owner"
>>> lowerBound="1" eType="#//StToken"
>>> eOpposite="#//StToken/coordinate"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StTokenSource">
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="uriString"
>>> lowerBound="1"
>>> eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tabSize"
>>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EEnum" name="StFormattingType">
>>> <eLiterals name="None"/>
>>> <eLiterals name="IndentOnly" value="1"/>
>>> <eLiterals name="FormatBefore" value="2"/>
>>> <eLiterals name="FormatAfter" value="3" literal=""/>
>>> <eLiterals name="Full" value="4"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StNonRegular">
>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>> name="nonRegularType" lowerBound="1"
>>> eType="#//StNonRegularType"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="special"
>>> eType="#//StToken"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="freeNode"
>>> eType="#//StInterpretationContext"
>>> containment="true"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EEnum" name="StNonRegularType">
>>> <eLiterals name="Special"/>
>>> <eLiterals name="FreeNode" value="1"/>
>>> </eClassifiers>
>>> <eClassifiers xsi:type="ecore:EClass" name="StConcreteNode"
>>> eSuperTypes="#//StBaseNode">
>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>> name="concreteId" lowerBound="1"
>>> eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>> </eClassifiers>
>>> </ecore:EPackage>
>
>
|
|
|
Re: [Teneo] Not-null property references a null value [message #609384 is a reply to message #92110] |
Tue, 31 July 2007 12:09 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Alain,
Yes it is true that the current default is String and not Ordinal. Overall in my view String is
better (at least it was for me). You can change this behavior by setting an @Enumerated annotation
in the edatatype of the enum.
A global option can also be of use here, please enter a bugzilla if you find that better.
I am not sure why you want to have the enumerated efeature stored in a separate table. Is it a list
of enumerates?
gr. Martin
Alain Picard wrote:
> Martin,
>
> I was using the version from July 12. After upgrading the version from
> the 21st, now both of my issue with the options have melted away. Great
> news.
>
> Now on the remaining point from my previous post:
> If you look at the ecore that I submitted, some columns are of type
> EEnums. When looking at the database, those enums are not mapped as
> table. Looking at previous post, and at bug 182825 and at the default
> for enumerated columns being ordinal (9.1.21) then how do I get the
> extra tables generated and the ordinal values saved instead of the text
> value in a standard varchar column.
>
> Thanks,
> Alain
>
>
> Martin Taal wrote:
>> Alain,
>> Which bug do you mean (182825 seemed to point to another bug)?
>>
>> Not finding the hbm file can be caused by this issue:
>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=196535
>>
>> This was solved in the build of 18 july. Which build are you using?
>>
>> The other exception you get is this:
>> > Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
>> > Unknown column 'strootnode2_.concreteid' in 'field list'
>>
>> Normally this occurs because the db schema is not in sync with the
>> (in-memory) mapping. Does this maybe apply to your case?
>> Other than this I have no real idea why this exception occurs when
>> update_schema is false.
>>
>> Yes the epackages are required for the initialization. The hbdatastore
>> does some computation which is not required for all users (adds
>> econtainer mapping and computes referer relations). But overall I
>> don't think that this takes much time (I have never done performance
>> measurements on that though).
>>
>> Setting the update_schema to false surely saves time and it is the
>> only option I know for getting better start up times.
>>
>> gr. Martin
>>
>> Alain Picard wrote:
>>> Martin,
>>>
>>> After not being able to generate the mapping and constantly getting
>>> the error mentioned earlier, I decided to switch to use a joined
>>> strategy.
>>>
>>> Well, I can now successfully save a model instance to the database.
>>>
>>> That being said, I am just facing more issues.
>>>
>>> First, off if you look at the ecore that I submitted, some columns
>>> are of type EEnums. When looking at the database, those enums are not
>>> mapped as table. Looking at previous post, and at bug 182825 and at
>>> the default for enumerated columns being ordinal (9.1.21) then how do
>>> I get the extra tables generated and the ordinal values saved instead
>>> of the text value in a standard varchar column.
>>>
>>> 2nd, I am trying to find the best and most efficient way to
>>> "initialize" the HbDataStore.
>>>
>>> I have tried to set the USE_MAPPING_FILE property, only to get
>>> exception "org.hibernate.hql.ast.QuerySyntaxException: StTreeRoot is
>>> not mapped, etc. I found a post of March 27 covering this issue, but
>>> here is what I get in my log:
>>> DEBUG [30 Jul 2007 19:43] HbSessionDataStore.java: 156 : Searching
>>> hbm files in class paths of epackages
>>> DEBUG [30 Jul 2007 19:43] StoreUtil.java: 514 : >>>> Building or
>>> descriptor file List
>>> DEBUG [30 Jul 2007 19:43] StoreUtil.java: 528 : Try path:
>>> ;hibernate.hbm.xml
>>> and then it moves on. I have tried to put the hibernate.hbm.xml file
>>> in the classpath (beside log4j.properties), at the root, in the
>>> package directory. When comparing with the above mentioned post, I
>>> don't see any other try path listed or !found anywhere. Any clue?
>>>
>>> Next, I have set the UPDATE_SCHEMA to false, to try to speed up the
>>> initialization (once the schema is stable, I believe that should be
>>> the standard way to go). Anyway, I now get the following after
>>> executing a query:
>>> org.hibernate.exception.SQLGrammarException: could not load an
>>> entity: [StInterpretationContext#1]
>>> at
>>> org.hibernate.exception.SQLStateConverter.convert(SQLStateCo nverter.java:67)
>>>
>>> at
>>> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExce ptionHelper.java:43)
>>>
>>> at org.hibernate.loader.Loader.loadEntity(Loader.java:1874)
>>> at
>>> org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:48)
>>>
>>> at
>>> org.hibernate.loader.entity.AbstractEntityLoader.load(Abstra ctEntityLoader.java:42)
>>>
>>> at
>>> org.hibernate.persister.entity.AbstractEntityPersister.load( AbstractEntityPersister.java:3042)
>>>
>>> at
>>> org.hibernate.event.def.DefaultLoadEventListener.loadFromDat asource(DefaultLoadEventListener.java:395)
>>>
>>> at
>>> org.hibernate.event.def.DefaultLoadEventListener.doLoad(Defa ultLoadEventListener.java:375)
>>>
>>> at
>>> org.hibernate.event.def.DefaultLoadEventListener.load(Defaul tLoadEventListener.java:139)
>>>
>>> at
>>> org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad (DefaultLoadEventListener.java:179)
>>>
>>> at
>>> org.hibernate.event.def.DefaultLoadEventListener.onLoad(Defa ultLoadEventListener.java:103)
>>>
>>> at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878 )
>>> at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java :846)
>>> at
>>> org.hibernate.type.EntityType.resolveIdentifier(EntityType.j ava:557)
>>> at org.hibernate.type.EntityType.resolve(EntityType.java:379)
>>> at
>>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseL oad.java:116)
>>>
>>> at
>>> org.hibernate.loader.Loader.initializeEntitiesAndCollections (Loader.java:854)
>>>
>>> at org.hibernate.loader.Loader.doQuery(Loader.java:729)
>>> at
>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
>>>
>>> at org.hibernate.loader.Loader.doList(Loader.java:2220)
>>> at
>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java :2104)
>>> at org.hibernate.loader.Loader.list(Loader.java:2099)
>>> at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:3 78)
>>> at
>>> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslat orImpl.java:338)
>>>
>>> at
>>> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQuery Plan.java:172)
>>>
>>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>> at test.TestSTM.main(TestSTM.java:100)
>>> Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
>>> Unknown column 'strootnode2_.concreteid' in 'field list'
>>> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936 )
>>> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
>>> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
>>> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
>>> at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
>>> at
>>> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedSta tement.java:1268)
>>>
>>> at
>>> com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatem ent.java:1403)
>>>
>>> at
>>> org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatc her.java:186)
>>>
>>> at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
>>> at org.hibernate.loader.Loader.doQuery(Loader.java:674)
>>> at
>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyColle ctions(Loader.java:236)
>>>
>>> at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
>>> ... 25 more
>>> this does not occur if the option is not specified. Any idea why this
>>> is happening?
>>>
>>> At last, what would be your most efficient "initialization" routine
>>> for HbDataStore. Do you need to set EPackage every time? etc.
>>>
>>> Thanks again for all your help. We're slowly but surely getting there.
>>>
>>> Alain
>>>
>>>
>>> Martin Taal wrote:
>>>> Hi Alain,
>>>> The following happens. The StTokenImpl has a many-to-one reference
>>>> to the StTokenSourceImpl. Before saving the StTokenImpl it nullifies
>>>> the reference to the StTokenSourceImpl because StTokenSourceImpl is
>>>> not yet saved in the db (this nullifying does not occur in the
>>>> object but in a separate array of values kept by hibernate).
>>>> This can be repaired by first saving StTokenSourceImpl or by setting
>>>> a cascade annotation on the ereference (I tried the last and it
>>>> seemed to work, see the attached ecore).
>>>>
>>>> gr. Martin
>>>>
>>>> Alain Picard wrote:
>>>>> Oops, here is the attachment
>>>>>
>>>>> Alain
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------ ------------
>>>>
>>>>e
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <ecore:EPackage xmi:version="2.0"
>>>> xmlns:xmi="http://www.omg.org/XMI"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
>>>> name="STM_MetaModel"
>>>> nsURI="http://com.castortech.stm" nsPrefix="STM_MetaModel">
>>>> <eClassifiers xsi:type="ecore:EClass" name="StTreeRoot">
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="sources"
>>>> lowerBound="1"
>>>> upperBound="-1" eType="#//StTokenSource" containment="true"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="rootInterpreter" lowerBound="1"
>>>> eType="#//StInterpretationContext" containment="true"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StInterpretationContext">
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="mainTokenSource" lowerBound="1"
>>>> eType="#//StTokenSource"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="root"
>>>> lowerBound="1" eType="#//StRootNode"
>>>> containment="true"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="interpreterId" lowerBound="1"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StRootNode"
>>>> eSuperTypes="#//StConcreteNode"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StBaseNode">
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="parent"
>>>> eType="#//StBaseNode"
>>>> eOpposite="#//StBaseNode/children"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="children"
>>>> upperBound="-1"
>>>> eType="#//StBaseNode" containment="true"
>>>> eOpposite="#//StBaseNode/parent"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="nodeSources" upperBound="-1"
>>>> eType="#//StTokenSource"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StToken"
>>>> eSuperTypes="#//StBaseNode">
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="coordinate" eType="#//StCoordinate"
>>>> containment="true" eOpposite="#//StCoordinate/owner"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="tokenType" lowerBound="1"
>>>> eType="#//StTokenType"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="image"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind"
>>>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="originalNode" eType="#//StBaseNode"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="tokenSource" lowerBound="1"
>>>> eType="#//StTokenSource">
>>>> <eAnnotations source="teneo.jpa">
>>>> <details key="value" value="@ManyToOne(cascade={PERSIST})"/>
>>>> </eAnnotations>
>>>> </eStructuralFeatures>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="formattingType" lowerBound="1"
>>>> eType="#//StFormattingType"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="nonRegulars" upperBound="-1"
>>>> eType="#//StNonRegular" containment="true"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EEnum" name="StTokenType">
>>>> <eLiterals name="Regular"/>
>>>> <eLiterals name="Special" value="1"/>
>>>> <eLiterals name="EOF" value="2"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StCoordinate">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset"
>>>> lowerBound="1"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="length"
>>>> lowerBound="1"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
>>>> lowerBound="1" eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="owner"
>>>> lowerBound="1" eType="#//StToken"
>>>> eOpposite="#//StToken/coordinate"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StTokenSource">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="uriString" lowerBound="1"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="tabSize"
>>>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EEnum" name="StFormattingType">
>>>> <eLiterals name="None"/>
>>>> <eLiterals name="IndentOnly" value="1"/>
>>>> <eLiterals name="FormatBefore" value="2"/>
>>>> <eLiterals name="FormatAfter" value="3" literal=""/>
>>>> <eLiterals name="Full" value="4"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StNonRegular">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="nonRegularType" lowerBound="1"
>>>> eType="#//StNonRegularType"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="special"
>>>> eType="#//StToken"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="freeNode"
>>>> eType="#//StInterpretationContext"
>>>> containment="true"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EEnum" name="StNonRegularType">
>>>> <eLiterals name="Special"/>
>>>> <eLiterals name="FreeNode" value="1"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="StConcreteNode"
>>>> eSuperTypes="#//StBaseNode">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="concreteId" lowerBound="1"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> </eClassifiers>
>>>> </ecore:EPackage>
>>
>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
| | |
Goto Forum:
Current Time: Wed Sep 25 06:14:47 GMT 2024
Powered by FUDForum. Page generated in 0.05540 seconds
|