Scratch that question. There is no foreign key column in the parent table of a to-many relationship, which is why it cannot be indexed... Sorry... Not enough coffee.

On 19/09/2007, at 4:37 PM, Drew Lethbridge wrote:

Is it ok to ask this list JDO questions in the context of openjpa? If not, please let me know. If it's ok, then the question is as follows:

I have declared a foreign key field as follows, and set indexed="true", but openjpa does not like it, see following exception. Why is this not supported, and what's my easiest workaround? Thanks...

<field name="_holdings" table="ACCOU__HOLDINGS" indexed="true">
  <collection element-type="Holding" />
  <join column="JDOID"  indexed="true"/>
  <element column="HOLDINGS_JDOID" indexed="true">
    <foreign-key deferred="true" />
  </element>
</field>

[java] <1.0.0-SNAPSHOT-SNAPSHOT fatal user error> org.apache.openjpa.util.MetaDataException: "Account._holdings" is marked as indexed, but OpenJPA does not support an index on this mapping in this context. [java] at org.apache.openjpa.jdbc.meta.MappingInfo.assertNoIndex (MappingInfo.java:370) [java] at org.apache.openjpa.jdbc.meta.MappingInfo.assertNoSchemaComponents (MappingInfo.java:319) [java] at org.apache.openjpa.jdbc.meta.strats.RelationToManyTableFieldStrategy.m ap(RelationToManyTableFieldStrategy.java:96) [java] at org.apache.openjpa.jdbc.meta.strats.RelationCollectionTableFieldStrate gy.map(RelationCollectionTableFieldStrategy.java:94) [java] at org.apache.openjpa.jdbc.meta.FieldMapping.setStrategy (FieldMapping.java:120) [java] at org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy( RuntimeStrategyInstaller.java:80) [java] at org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping (FieldMapping.java:438) [java] at org.apache.openjpa.jdbc.meta.FieldMapping.resolve (FieldMapping.java:403) [java] at org.apache.openjpa.jdbc.meta.ClassMapping.resolveMapping (ClassMapping.java:784) [java] at org.apache.openjpa.meta.ClassMetaData.resolve (ClassMetaData.java:1586) [java] at org.apache.openjpa.meta.MetaDataRepository.processBuffer (MetaDataRepository.java:659) [java] at org.apache.openjpa.meta.MetaDataRepository.resolveMapping (MetaDataRepository.java:620) [java] at org.apache.openjpa.meta.MetaDataRepository.resolve (MetaDataRepository.java:498) [java] at org.apache.openjpa.meta.MetaDataRepository.getMetaData (MetaDataRepository.java:288) [java] at org.apache.openjpa.meta.MetaDataRepository.resolveMeta (MetaDataRepository.java:524) [java] at org.apache.openjpa.meta.MetaDataRepository.resolve (MetaDataRepository.java:484) [java] at org.apache.openjpa.meta.MetaDataRepository.getMetaData (MetaDataRepository.java:288) [java] at org.apache.openjpa.jdbc.meta.MappingRepository.getMapping (MappingRepository.java:279) [java] at org.apache.openjpa.jdbc.meta.MappingTool.getMapping (MappingTool.java:670) [java] at org.apache.openjpa.jdbc.meta.MappingTool.buildSchema (MappingTool.java:742) [java] at org.apache.openjpa.jdbc.meta.MappingTool.run (MappingTool.java:640) [java] at org.apache.openjpa.jdbc.meta.MappingTool.run (MappingTool.java:1063)
     [java]     at my code....



Reply via email to