I wonder if this is possibly related to OPENJPA-179 and/or OPENJPA-198?
Although Phill's symptoms are slightly different, he is getting unexpected
behavour just because the schema name is specified.  May be completely
unrelated, but the description jogged my memory on this outstanding problem
(198).

Kevin

On 4/24/07, Marc Prud'hommeaux <[EMAIL PROTECTED]> wrote:

Phill-

This does sound like a bug to me. Can you open a JIRA issue with the
information?



On Apr 23, 2007, at 4:12 PM, Phill Moran wrote:

> I can toggle this exception on/off by adding the schema statement.
> I was running
> validate on my country class that persists to the country table on a
> table-per-class inheritance strategy. Using 0.9.6 openJPA
>
> 16  TRACE  [main] openjpa.Runtime - Setting the following
> properties from
> "file:/C:/BidSpec/emall/development/emall/src/main/resources/META-
> INF/persistenc
> e.xml" into configuration: {openjpa.DetachState=loaded,
> openjpa.DataCache=false,
> openjpa.Optimistic=true, openjpa.NontransactionalRead=true,
> javax.persistence.provider=org.apache.openjpa.persistence.PersistenceP
> roviderImp
> l, openjpa.jdbc.DBDictionary=mysql(SupportsSubselect=true),
> openjpa.Log=DefaultLevel=TRACE, Runtime=TRACE, Enhance=TRACE,
> Tool=TRACE,
> SQL=TRACE, openjpa.ConnectionUserName=user,
> openjpa.ConnectionPassword=password,
> openjpa.ConnectionDriverName=com.mysql.jdbc.Driver,
> openjpa.MetaDataFactory=Types=ca.BidSpec.emall.categories.Attribute;ca
> .BidSpec.e
> mall.categories.AttributeType;ca.BidSpec.emall.categories.Category;ca.
> BidSpec.em
> all.categories.CategoryType;ca.BidSpec.emall.categories.Country;ca.Bid
> Spec.emall
> .categories.Division;ca.BidSpec.emall.categories.DivisionType;ca.BidSp
> ec.emall.c
> ategories.ImageType;ca.BidSpec.emall.categories.ProductComponent;ca.Bi
> dSpec.emal
> l.categories.ProductRequiredOptional;ca.BidSpec.emall.categories.Produ
> ctType;ca.
> BidSpec.emall.categories.Province;ca.BidSpec.emall.categories.Subdivis
> ion;ca.Bid
> Spec.emall.commonServices.EmailAddress;ca.BidSpec.emall.commonServices
> .Image;ca.
> BidSpec.emall.commonServices.InitializerActivity;ca.BidSpec.emall.comm
> onServices
> .PhoneNumber;ca.BidSpec.emall.commonServices.PropertyMap;ca.BidSpec.em
> all.common
> Services.Size;ca.BidSpec.emall.commonServices.StreetAddress;ca.BidSpec
> .emall.com
> monServices.WebAddress;ca.BidSpec.emall.money.Currency;ca.BidSpec.emal
> l.money.Pr
> ice;ca.BidSpec.emall.persistence.Persistable;ca.BidSpec.emall.products
> .Product;c
> a.BidSpec.emall.stores.Store;ca.BidSpec.emall.user.Person,
> openjpa.AutoDetach=close, openjpa.OrphanedKeyAction=log,
> openjpa.Multithreaded=true,
> openjpa.ConnectionURL=jdbc:mysql://dell600:3306/bidspec}
> 141  TRACE  [main] openjpa.MetaData - Using metadata factory
> "[EMAIL PROTECTED]
> ".
> 188  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class
> "org.apache.openjpa.jdbc.sql.MySQLDictionary".
> 266  INFO   [main] openjpa.Tool - Mapping tool running on type "class
> ca.BidSpec.emall.categories.Country" with action "validate".
> 282  TRACE  [main] openjpa.MetaData - Using metadata factory
> "[EMAIL PROTECTED]"
> .
> 297  TRACE  [main] openjpa.MetaData - Loading metadata for "class
> ca.BidSpec.emall.categories.Country" under mode "[META][QUERY]".
> 297  INFO   [main] openjpa.MetaData - Found 27 classes with
> metadata in 0
> milliseconds.
> 360  INFO   [main] openjpa.MetaData - Parsing class
> "ca.BidSpec.emall.categories.Country".
> 360  INFO   [main] openjpa.MetaData - Parsing package
> "ca.BidSpec.emall.categories.Country".
> 469  TRACE  [main] openjpa.MetaData - Generating default metadata
> for type
> "ca.BidSpec.emall.categories.Country".
> 469  TRACE  [main] openjpa.MetaData - Using reflection for metadata
> generation.
> 516  INFO   [main] openjpa.MetaData - Parsing query "CountryFXPK".
> 516  INFO   [main] openjpa.MetaData - Parsing query "CountryF".
> 547  TRACE  [main] openjpa.MetaData - Loading metadata for "class
> ca.BidSpec.emall.persistence.Persistable" under mode "[META][QUERY]".
> 547  INFO   [main] openjpa.MetaData - Parsing class
> "ca.BidSpec.emall.persistence.Persistable".
> 547  INFO   [main] openjpa.MetaData - Parsing package
> "ca.BidSpec.emall.persistence.Persistable".
> 563  TRACE  [main] openjpa.MetaData - Generating default metadata
> for type
> "ca.BidSpec.emall.persistence.Persistable".
> 563  TRACE  [main] openjpa.MetaData - Using reflection for metadata
> generation.
> 563  TRACE  [main] openjpa.MetaData - Set persistence-capable
> superclass of
> "ca.BidSpec.emall.persistence.Persistable" to "null".
> 563  TRACE  [main] openjpa.MetaData - Resolving metadata for
> "[EMAIL PROTECTED]".
> 563  TRACE  [main] openjpa.MetaData -         Resolving field
> "[EMAIL PROTECTED]".
> 578  TRACE  [main] openjpa.MetaData -         Resolving field
> "[EMAIL PROTECTED]".
> 594  TRACE  [main] openjpa.MetaData - Preparing mapping for
> "ca.BidSpec.emall.persistence.Persistable".
> 594  TRACE  [main] openjpa.MetaData -         Resolving field
> "[EMAIL PROTECTED]".
> 594  TRACE  [main] openjpa.MetaData -         "id" has mapping strategy
> "none".
> 594  TRACE  [main] openjpa.MetaData -         Resolving field
> "[EMAIL PROTECTED]".
> 594  TRACE  [main] openjpa.MetaData -         "lastUpdated" has mapping
> strategy
> "none".
> 594  TRACE  [main] openjpa.MetaData -
> "ca.BidSpec.emall.persistence.Persistable<discriminator>" has
> mapping strategy
> "none".
> 610  TRACE  [main] openjpa.MetaData -
> "ca.BidSpec.emall.persistence.Persistable<version>" has mapping
> strategy "none".
> 610  TRACE  [main] openjpa.MetaData - Resolving mapping for
> "[EMAIL PROTECTED]".
> 610  TRACE  [main] openjpa.MetaData -
> "ca.BidSpec.emall.persistence.Persistable"
> has mapping strategy "none".
> 610  TRACE  [main] openjpa.MetaData - Set persistence-capable
> superclass of
> "ca.BidSpec.emall.categories.Country" to "class
> ca.BidSpec.emall.persistence.Persistable".
> 610  TRACE  [main] openjpa.MetaData - Resolving metadata for
> "[EMAIL PROTECTED]".
> 610  TRACE  [main] openjpa.MetaData -         Resolving field
> "[EMAIL PROTECTED]".
> 610  TRACE  [main] openjpa.MetaData -         Resolving field
> "[EMAIL PROTECTED]".
> 610  TRACE  [main] openjpa.MetaData -         Resolving field
> "[EMAIL PROTECTED]".
> 610  TRACE  [main] openjpa.MetaData - Preparing mapping for
> "ca.BidSpec.emall.categories.Country".
> 907  TRACE  [main] openjpa.jdbc.JDBC - catalogSeparator: .
> catalogTerm: database
> databaseProductName: MySQL
> databaseProductVersion: 5.0.24a-community-nt
> driverName: MySQL-AB JDBC Driver
> driverVersion: mysql-connector-java-5.0.4 ( $Date: 2006-10-19
> 17:47:48 +0200
> (Thu, 19 Oct 2006) $, $Revision: 5908 $ )
> extraNameCharacters: #@
> identifierQuoteString: `
> numericFunctions:
> ABS,ACOS,ASIN,ATAN,ATAN2,BIT_COUNT,CEILING,COS,COT,DEGREES,EXP,FLOOR,L
> OG,LOG10,M
> AX,MIN,MOD,PI,POW,POWER,RADIANS,RAND,ROUND,SIN,SQRT,TAN,TRUNCATE
> procedureTerm: PROCEDURE
> schemaTerm:
> searchStringEscape: \
> sqlKeywords:
> AUTO_INCREMENT,BINARY,BLOB,ENUM,INFILE,LOAD,MEDIUMINT,OPTION,OUTFILE,R
> EPLACE,SET
> ,TEXT,UNSIGNED,ZEROFILL
> stringFunctions:
> ASCII,BIN,BIT_LENGTH,CHAR,CHARACTER_LENGTH,CHAR_LENGTH,CONCAT,CONCAT_W
> S,CONV,ELT
> ,EXPORT_SET,FIELD,FIND_IN_SET,HEX,INSERT,INSTR,LCASE,LEFT,LENGTH,LOAD_
> FILE,LOCAT
> E,LOCATE,LOWER,LPAD,LTRIM,MAKE_SET,MATCH,MID,OCT,OCTET_LENGTH,ORD,POSI
> TION,QUOTE
> ,REPEAT,REPLACE,REVERSE,RIGHT,RPAD,RTRIM,SOUNDEX,SPACE,STRCMP,SUBSTRIN
> G,SUBSTRIN
> G,SUBSTRING,SUBSTRING,SUBSTRING_INDEX,TRIM,UCASE,UPPER
> systemFunctions:
> DATABASE,USER,SYSTEM_USER,SESSION_USER,PASSWORD,ENCRYPT,LAST_INSERT_ID
> ,VERSION
> timeDateFunctions:
> DAYOFWEEK,WEEKDAY,DAYOFMONTH,DAYOFYEAR,MONTH,DAYNAME,MONTHNAME,QUARTER
> ,WEEK,YEAR
> ,HOUR,MINUTE,SECOND,PERIOD_ADD,PERIOD_DIFF,TO_DAYS,FROM_DAYS,DATE_FORM
> AT,TIME_FO
> RMAT,CURDATE,CURRENT_DATE,CURTIME,CURRENT_TIME,NOW,SYSDATE,CURRENT_TIM
> ESTAMP,UNI
> X_TIMESTAMP,FROM_UNIXTIME,SEC_TO_TIME,TIME_TO_SEC
> url: jdbc:mysql://dell600:3306/bidspec
> userName: [EMAIL PROTECTED]
> defaultTransactionIsolation: 2
> driverMajorVersion: 5
> driverMinorVersion: 0
> maxBinaryLiteralLength: 16777208
> maxCatalogNameLength: 32
> maxCharLiteralLength: 16777208
> maxColumnNameLength: 64
> maxColumnsInGroupBy: 64
> maxColumnsInIndex: 16
> maxColumnsInOrderBy: 64
> maxColumnsInSelect: 256
> maxColumnsInTable: 512
> maxConnections: 0
> maxCursorNameLength: 64
> maxIndexLength: 256
> maxProcedureNameLength: 0
> maxRowSize: 2147483639
> maxSchemaNameLength: 0
> maxStatementLength: 65531
> maxStatements: 0
> maxTableNameLength: 64
> maxTablesInSelect: 256
> maxUserNameLength: 16
> isCatalogAtStart: true
> isReadOnly: false
> nullPlusNonNullIsNull: true
> nullsAreSortedAtEnd: false
> nullsAreSortedAtStart: false
> nullsAreSortedHigh: false
> nullsAreSortedLow: true
> storesLowerCaseIdentifiers: true
> storesLowerCaseQuotedIdentifiers: true
> storesMixedCaseIdentifiers: false
> storesMixedCaseQuotedIdentifiers: false
> storesUpperCaseIdentifiers: false
> storesUpperCaseQuotedIdentifiers: true
> supportsAlterTableWithAddColumn: true
> supportsAlterTableWithDropColumn: true
> supportsANSI92EntryLevelSQL: true
> supportsANSI92FullSQL: false
> supportsANSI92IntermediateSQL: false
> supportsCatalogsInDataManipulation: true
> supportsCatalogsInIndexDefinitions: true
> supportsCatalogsInPrivilegeDefinitions: true
> supportsCatalogsInProcedureCalls: true
> supportsCatalogsInTableDefinitions: true
> supportsColumnAliasing: true
> supportsConvert: false
> supportsCoreSQLGrammar: true
> supportsCorrelatedSubqueries: true
> supportsDataDefinitionAndDataManipulationTransactions: false
> supportsDataManipulationTransactionsOnly: false
> supportsDifferentTableCorrelationNames: true
> supportsExpressionsInOrderBy: true
> supportsExtendedSQLGrammar: false
> supportsFullOuterJoins: false
> supportsGroupBy: true
> supportsGroupByBeyondSelect: true
> supportsGroupByUnrelated: true
> supportsIntegrityEnhancementFacility: false
> supportsLikeEscapeClause: true
> supportsLimitedOuterJoins: true
> supportsMinimumSQLGrammar: true
> supportsMixedCaseIdentifiers: false
> supportsMixedCaseQuotedIdentifiers: false
> supportsMultipleResultSets: false
> supportsMultipleTransactions: true
> supportsNonNullableColumns: true
> supportsOpenCursorsAcrossCommit: false
> supportsOpenCursorsAcrossRollback: false
> supportsOpenStatementsAcrossCommit: false
> supportsOpenStatementsAcrossRollback: false
> supportsOrderByUnrelated: false
> supportsOuterJoins: true
> supportsPositionedDelete: false
> supportsPositionedUpdate: false
> supportsSchemasInDataManipulation: false
> supportsSchemasInIndexDefinitions: false
> supportsSchemasInPrivilegeDefinitions: false
> supportsSchemasInProcedureCalls: false
> supportsSchemasInTableDefinitions: false
> supportsSelectForUpdate: true
> supportsStoredProcedures: true
> supportsSubqueriesInComparisons: true
> supportsSubqueriesInExists: true
> supportsSubqueriesInIns: true
> supportsSubqueriesInQuantifieds: true
> supportsTableCorrelationNames: true
> supportsTransactions: true
> supportsUnion: true
> supportsUnionAll: true
> usesLocalFilePerTable: false
> usesLocalFiles: false
> allProceduresAreCallable: false
> allTablesAreSelectable: false
> dataDefinitionCausesTransactionCommit: true
> dataDefinitionIgnoredInTransactions: false
> doesMaxRowSizeIncludeBlobs: true
> supportsBatchUpdates: true
> 922  INFO   [main] openjpa.jdbc.Schema - Reading table information
> for schema
> name "bidspec", table name "country".
> 922  TRACE  [main] openjpa.jdbc.JDBC - <t 29919449, conn 9472129>
> getColumns:
> bidspec, bidspec, country, null
> 969  TRACE  [main] openjpa.jdbc.Schema - Reading column information
> for table
> "country".
> 969  TRACE  [main] openjpa.jdbc.Schema - Found existing column "id"
> on table
> "country".
> 969  TRACE  [main] openjpa.jdbc.Schema - Found existing column
> "name" on table
> "country".
> 969  TRACE  [main] openjpa.jdbc.Schema - Found existing column
> "code" on table
> "country".
> 969  TRACE  [main] openjpa.jdbc.Schema - Found existing column
> "displayName" on
> table "country".
> 969  TRACE  [main] openjpa.jdbc.Schema - Found existing column
> "lastUpdated" on
> table "country".
> 985  TRACE  [main] openjpa.jdbc.JDBC - <t 29919449, conn 9472129>
> [16 ms] close
> 985  TRACE  [main] openjpa.MetaData - Resolving mapping for
> "[EMAIL PROTECTED]".
> 1016  INFO   [main] openjpa.jdbc.Schema - Reading table information
> for schema
> name "bidspec", table name "country".
> 1016  TRACE  [main] openjpa.jdbc.JDBC - <t 29919449, conn 2850225>
> getColumns:
> bidspec, bidspec, country, null
> 1032  TRACE  [main] openjpa.jdbc.Schema - Found existing column
> "id" on table
> "country".
> 1032  TRACE  [main] openjpa.jdbc.Schema - Found existing column
> "name" on table
> "country".
> 1032  TRACE  [main] openjpa.jdbc.Schema - Found existing column
> "code" on table
> "country".
> 1032  TRACE  [main] openjpa.jdbc.Schema - Found existing column
> "displayName" on
> table "country".
> 1032  TRACE  [main] openjpa.jdbc.Schema - Found existing column
> "lastUpdated" on
> table "country".
> 1063  TRACE  [main] openjpa.jdbc.JDBC - <t 29919449, conn 2850225>
> [31 ms] close
> 1063  TRACE  [main] openjpa.MetaData - Clearing metadata repository
> "[EMAIL PROTECTED]".
> Exception in thread "main" <4|true|0.9.6-incubating>
> org.apache.openjpa.util.MetaDataException: Errors encountered while
> resolving
> metadata.  See nested exceptions for details.
>       at
> org.apache.openjpa.meta.MetaDataRepository.resolve
> (MetaDataRepository.java:501)
>       at
> org.apache.openjpa.meta.MetaDataRepository.getMetaData
> (MetaDataRepository.java:2
> 83)
>       at
> org.apache.openjpa.jdbc.meta.MappingRepository.getMapping
> (MappingRepository.java
> :271)
>       at
> org.apache.openjpa.jdbc.meta.MappingTool.getMapping
> (MappingTool.java:660)
>       at
> org.apache.openjpa.jdbc.meta.MappingTool.validate(MappingTool.java:
> 718)
>       at org.apache.openjpa.jdbc.meta.MappingTool.run(MappingTool.java
:634)
>       at org.apache.openjpa.jdbc.meta.MappingTool.run(MappingTool.java:
> 1059)
>       at org.apache.openjpa.jdbc.meta.MappingTool.run(MappingTool.java
:966)
>       at org.apache.openjpa.jdbc.meta.MappingTool.main(MappingTool.java:
> 907)
> Caused by: <4|true|0.9.6-incubating>
> org.apache.openjpa.util.MetaDataException:
> Table "bidspec.country" given for
> "ca.BidSpec.emall.categories.Country" does not
> exist.
>       at
> org.apache.openjpa.jdbc.meta.MappingInfo.createTable
> (MappingInfo.java:453)
>       at
> org.apache.openjpa.jdbc.meta.ClassMappingInfo.getTable
> (ClassMappingInfo.java:201
> )
>       at
> org.apache.openjpa.jdbc.meta.strats.FullClassStrategy.map
> (FullClassStrategy.java
> :68)
>       at
> org.apache.openjpa.jdbc.meta.ClassMapping.setStrategy
> (ClassMapping.java:343)
>       at
> org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(
> RuntimeStr
> ategyInstaller.java:52)
>       at
> org.apache.openjpa.jdbc.meta.MappingRepository.prepareMapping
> (MappingRepository.
> java:305)
>       at
> org.apache.openjpa.meta.MetaDataRepository.preMapping
> (MetaDataRepository.java:60
> 0)
>       at
> org.apache.openjpa.meta.MetaDataRepository.resolve
> (MetaDataRepository.java:487)
>       ... 8 more
> NestedThrowables:
> <4|true|0.9.6-incubating>
> org.apache.openjpa.util.MetaDataException: Table
> "bidspec.country" given for "ca.BidSpec.emall.categories.Country"
> does not
> exist.
>       at
> org.apache.openjpa.jdbc.meta.MappingInfo.createTable
> (MappingInfo.java:453)
>       at
> org.apache.openjpa.jdbc.meta.ClassMappingInfo.getTable
> (ClassMappingInfo.java:201
> )
>       at
> org.apache.openjpa.jdbc.meta.strats.FullClassStrategy.map
> (FullClassStrategy.java
> :68)
>       at
> org.apache.openjpa.jdbc.meta.ClassMapping.setStrategy
> (ClassMapping.java:343)
>       at
> org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(
> RuntimeStr
> ategyInstaller.java:52)
>       at
> org.apache.openjpa.jdbc.meta.ClassMapping.resolveMapping
> (ClassMapping.java:768)
>       at
> org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1569)
>       at
> org.apache.openjpa.meta.MetaDataRepository.processBuffer
> (MetaDataRepository.java
> :654)
>       at
> org.apache.openjpa.meta.MetaDataRepository.resolveMapping
> (MetaDataRepository.jav
> a:615)
>       at
> org.apache.openjpa.meta.MetaDataRepository.resolve
> (MetaDataRepository.java:493)
>       at
> org.apache.openjpa.meta.MetaDataRepository.getMetaData
> (MetaDataRepository.java:2
> 83)
>       at
> org.apache.openjpa.jdbc.meta.MappingRepository.getMapping
> (MappingRepository.java
> :271)
>       at
> org.apache.openjpa.jdbc.meta.MappingTool.getMapping
> (MappingTool.java:660)
>       at
> org.apache.openjpa.jdbc.meta.MappingTool.validate(MappingTool.java:
> 718)
>       at org.apache.openjpa.jdbc.meta.MappingTool.run(MappingTool.java
:634)
>       at org.apache.openjpa.jdbc.meta.MappingTool.run(MappingTool.java:
> 1059)
>       at org.apache.openjpa.jdbc.meta.MappingTool.run(MappingTool.java
:966)
>       at org.apache.openjpa.jdbc.meta.MappingTool.main(MappingTool.java:
> 907)
>
> -----Original Message-----
> From: Marc Prud'hommeaux [mailto:[EMAIL PROTECTED] On
> Behalf Of Marc
> Prud'hommeaux
> Sent: April 23, 2007 1:13 PM
> To: open-jpa-dev@incubator.apache.org
> Subject: Re: Validate and @table schema use
>
> Phill-
>
> It sounds like a bug, but it would help to know what the exception
> was :)
>
>
> On Apr 23, 2007, at 7:02 AM, Phill Moran wrote:
>
>> I have been working with the validate tool and was getting an
>> exception on classes that used @table(name="XXX", schema="YYY").
>> If I
>> took out the schema portion the exception went away. I see no mention
>> of not using schema in @table for validate use. Is this a bug or
>> undocumented feature
>>
>> The mapping tool knows which schema to use from the URL and
>> openJPA.schema properties
>>
>> Phill
>>
>


Reply via email to