Skip to Main Content

Integration

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interesting TopLink Mappings behavior

524805Aug 29 2006 — edited Aug 30 2006
Hello,

I discovered an interesting TopLink Mappings behavior. Maybe I am doing something stupid, and someone can tell me how to do it right. It would be very nice.

I am about setting up a project where more than one person is working on, so I put it into CVS, to see what is going on.

But step by step.

I have set up a TopLink projevt in JDeveloper with the TopLink Mapping Workbench. Right now, I only want to use the query functions of TopLink, and for these I created some DB views. Because the views don't have any primary keys, I am using all of the foreign keys in the mapping, cause otherwise, I am not able to generate the deployment descriptor. Afterwards, I put the project into CVS, to see what is going on.

After I had done all this, I opened it with another user, from another PC, with a different JDeveloper. The result TopLink encounters is a nice looking screen in the Workbench with the following text on it:
There was a problem encountered loading the TopLink Mappings project: null

It happened a couple of times, I always tried to fix it by setting up the project new, but every time the same result.

After making a little research what is realy going on I discovered the following behavior:
CVS tells me, that the file on my disk looks like this:
<?xml version = '1.0' encoding = 'UTF-8'?>
<project>
<project-name>toplink_mappings</project-name>
<login>
<database-login>
<platform>oracle.toplink.oraclespecific.Oracle9Platform</platform>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<connection-url>jdbc:oracle:thin:@ZPTLDV2:1531:MPPDBDEV</connection-url>
<user-name>fmb_user</user-name>
<password>8B66EF2A66D659E35EA15CFCA8DDFDE9</password>
<uses-native-sequencing>false</uses-native-sequencing>
<sequence-preallocation-size>50</sequence-preallocation-size>
<sequence-table>SEQUENCE</sequence-table>
<sequence-name-field>SEQ_NAME</sequence-name-field>
<sequence-counter-field>SEQ_COUNT</sequence-counter-field>
<should-bind-all-parameters>false</should-bind-all-parameters>
<should-cache-all-statements>false</should-cache-all-statements>
<uses-byte-array-binding>true</uses-byte-array-binding>
<uses-string-binding>false</uses-string-binding>
<uses-streams-for-binding>false</uses-streams-for-binding>
<should-force-field-names-to-upper-case>false</should-force-field-names-to-upper-case>
<should-optimize-data-conversion>true</should-optimize-data-conversion>
<should-trim-strings>true</should-trim-strings>
<uses-batch-writing>false</uses-batch-writing>
<uses-jdbc-batch-writing>true</uses-jdbc-batch-writing>
<uses-external-connection-pooling>false</uses-external-connection-pooling>
<uses-external-transaction-controller>false</uses-external-transaction-controller>
<type>oracle.toplink.sessions.DatabaseLogin</type>
</database-login>
</login>
</project>


In former times it looked like
<?xml version = '1.0' encoding = 'UTF-8'?>
<project>
<project-name>toplink_mappings</project-name>
<login>
<database-login>
<platform>oracle.toplink.oraclespecific.Oracle9Platform</platform>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<connection-url>jdbc:oracle:thin:@ZPTLDV2:1531:MPPDBDEV</connection-url>
<user-name>fmb_user</user-name>
<password>8B66EF2A66D659E35EA15CFCA8DDFDE9</password>
<uses-native-sequencing>false</uses-native-sequencing>
<sequence-preallocation-size>50</sequence-preallocation-size>
<sequence-table>SEQUENCE</sequence-table>
<sequence-name-field>SEQ_NAME</sequence-name-field>
<sequence-counter-field>SEQ_COUNT</sequence-counter-field>
<should-bind-all-parameters>false</should-bind-all-parameters>
<should-cache-all-statements>false</should-cache-all-statements>
<uses-byte-array-binding>true</uses-byte-array-binding>
<uses-string-binding>false</uses-string-binding>
<uses-streams-for-binding>false</uses-streams-for-binding>
<should-force-field-names-to-upper-case>false</should-force-field-names-to-upper-case>
<should-optimize-data-conversion>true</should-optimize-data-conversion>
<should-trim-strings>true</should-trim-strings>
<uses-batch-writing>false</uses-batch-writing>
<uses-jdbc-batch-writing>true</uses-jdbc-batch-writing>
<uses-external-connection-pooling>false</uses-external-connection-pooling>
<uses-external-transaction-controller>false</uses-external-transaction-controller>
<type>oracle.toplink.sessions.DatabaseLogin</type>
</database-login>
</login>
<descriptors>
<descriptor>
<java-class>freddie.model.FmbResultsV</java-class>
<tables>
<table>MPP_OWNER.FMB_RESULTS_V</table>
</tables>
<primary-key-fields>
<field>MPP_OWNER.FMB_RESULTS_V.AREA_ID</field>
<field>MPP_OWNER.FMB_RESULTS_V.CAT_ID</field>
<field>MPP_OWNER.FMB_RESULTS_V.GRP_ID</field>
<field>MPP_OWNER.FMB_RESULTS_V.CAT_MASTER_ID</field>
</primary-key-fields>
<descriptor-type-value>Normal</descriptor-type-value>
<identity-map-class>oracle.toplink.internal.identitymaps.SoftCacheWeakIdentityMap</identity-map-class>
<remote-identity-map-class>oracle.toplink.internal.identitymaps.SoftCacheWeakIdentityMap</remote-identity-map-class>
<identity-map-size>100</identity-map-size>
<remote-identity-map-size>100</remote-identity-map-size>
<should-always-refresh-cache>false</should-always-refresh-cache>
<should-always-refresh-cache-on-remote>false</should-always-refresh-cache-on-remote>
<should-only-refresh-cache-if-newer-version>false</should-only-refresh-cache-if-newer-version>
<should-disable-cache-hits>false</should-disable-cache-hits>
<should-disable-cache-hits-on-remote>false</should-disable-cache-hits-on-remote>
<descriptor-is-read-only>true</descriptor-is-read-only>
<alias>FmbResultsV</alias>
<copy-policy>
<descriptor-copy-policy>
<type>oracle.toplink.internal.descriptors.CopyPolicy</type>
</descriptor-copy-policy>
</copy-policy>
<instantiation-policy>
<descriptor-instantiation-policy>
<type>oracle.toplink.internal.descriptors.InstantiationPolicy</type>
</descriptor-instantiation-policy>
</instantiation-policy>
<query-manager>
<descriptor-query-manager>
<existence-check>Check cache</existence-check>
<descriptor-named-queries>
<database-query>
<query-name>readAll_SQL</query-name>
<query-should-maintain-cache>true</query-should-maintain-cache>
<cascade-policy>1</cascade-policy>
<should-bind-all-parameters>undefined</should-bind-all-parameters>
<should-cache-statement>undefined</should-cache-statement>
<should-use-wrapper-policy>true</should-use-wrapper-policy>
<query-timeout>0</query-timeout>
<sql-string>SELECT * FROM fmb_results_v</sql-string>
<reference-class>freddie.model.FmbResultsV</reference-class>
<refresh-identity-map>false</refresh-identity-map>
<cache-usage>2</cache-usage>
<lock-mode>0</lock-mode>
<distinct-state>0</distinct-state>
<query-indirection>
<in-memory-query-indirection>
<policy>0</policy>
</in-memory-query-indirection>
</query-indirection>
<type>oracle.toplink.queryframework.ReadAllQuery</type>
</database-query>
</descriptor-named-queries>
</descriptor-query-manager>
</query-manager>
<event-manager>
<descriptor-event-manager empty-aggregate="true"/>
</event-manager>
<mappings>
<database-mapping>
<attribute-name>areaId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.AREA_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>areaName</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.AREA_NAME</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>categoryName</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.CATEGORY_NAME</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>catId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.CAT_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>catMasterId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.CAT_MASTER_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>catParamGroup</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.CAT_PARAM_GROUP</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>catParamResult</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.CAT_PARAM_RESULT</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>catParamValue</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.CAT_PARAM_VALUE</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>facility</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.FACILITY</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>groupName</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.GROUP_NAME</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>grpId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.GRP_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>sortCmId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.SORT_CM_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>sortScId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.SORT_SC_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>statusId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.STATUS_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>subCatId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.SUB_CAT_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>subCatName</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.SUB_CAT_NAME</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
</mappings>
<type>oracle.toplink.publicinterface.Descriptor</type>
</descriptor>
</descriptors>
</project>


That means it looks like the whole mapping part is deleted, by opening it a second time. But the more interesting point I discovered afterwards is, that the file, that should not have the descriptor part on the disc looks on the disc if I open it with an editor like this:
<?xml version = '1.0' encoding = 'UTF-8'?>
<project>
<project-name>toplink_mappings</project-name>
<login>
<database-login>
<platform>oracle.toplink.oraclespecific.Oracle9Platform</platform>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<connection-url>jdbc:oracle:thin:@ZPTLDV2:1531:MPPDBDEV</connection-url>
<user-name>fmb_user</user-name>
<password>8B66EF2A66D659E35EA15CFCA8DDFDE9</password>
<uses-native-sequencing>false</uses-native-sequencing>
<sequence-preallocation-size>50</sequence-preallocation-size>
<sequence-table>SEQUENCE</sequence-table>
<sequence-name-field>SEQ_NAME</sequence-name-field>
<sequence-counter-field>SEQ_COUNT</sequence-counter-field>
<should-bind-all-parameters>false</should-bind-all-parameters>
<should-cache-all-statements>false</should-cache-all-statements>
<uses-byte-array-binding>true</uses-byte-array-binding>
<uses-string-binding>false</uses-string-binding>
<uses-streams-for-binding>false</uses-streams-for-binding>
<should-force-field-names-to-upper-case>false</should-force-field-names-to-upper-case>
<should-optimize-data-conversion>true</should-optimize-data-conversion>
<should-trim-strings>true</should-trim-strings>
<uses-batch-writing>false</uses-batch-writing>
<uses-jdbc-batch-writing>true</uses-jdbc-batch-writing>
<uses-external-connection-pooling>false</uses-external-connection-pooling>
<uses-external-transaction-controller>false</uses-external-transaction-controller>
<type>oracle.toplink.sessions.DatabaseLogin</type>
</database-login>
</login>
<descriptors>
<descriptor>
<java-class>freddie.model.FmbResultsV</java-class>
<tables>
<table>MPP_OWNER.FMB_RESULTS_V</table>
</tables>
<primary-key-fields>
<field>MPP_OWNER.FMB_RESULTS_V.AREA_ID</field>
<field>MPP_OWNER.FMB_RESULTS_V.CAT_ID</field>
<field>MPP_OWNER.FMB_RESULTS_V.GRP_ID</field>
<field>MPP_OWNER.FMB_RESULTS_V.CAT_MASTER_ID</field>
</primary-key-fields>
<descriptor-type-value>Normal</descriptor-type-value>
<identity-map-class>oracle.toplink.internal.identitymaps.SoftCacheWeakIdentityMap</identity-map-class>
<remote-identity-map-class>oracle.toplink.internal.identitymaps.SoftCacheWeakIdentityMap</remote-identity-map-class>
<identity-map-size>100</identity-map-size>
<remote-identity-map-size>100</remote-identity-map-size>
<should-always-refresh-cache>false</should-always-refresh-cache>
<should-always-refresh-cache-on-remote>false</should-always-refresh-cache-on-remote>
<should-only-refresh-cache-if-newer-version>false</should-only-refresh-cache-if-newer-version>
<should-disable-cache-hits>false</should-disable-cache-hits>
<should-disable-cache-hits-on-remote>false</should-disable-cache-hits-on-remote>
<descriptor-is-read-only>true</descriptor-is-read-only>
<alias>FmbResultsV</alias>
<copy-policy>
<descriptor-copy-policy>
<type>oracle.toplink.internal.descriptors.CopyPolicy</type>
</descriptor-copy-policy>
</copy-policy>
<instantiation-policy>
<descriptor-instantiation-policy>
<type>oracle.toplink.internal.descriptors.InstantiationPolicy</type>
</descriptor-instantiation-policy>
</instantiation-policy>
<query-manager>
<descriptor-query-manager>
<existence-check>Check cache</existence-check>
<descriptor-named-queries>
<database-query>
<query-name>readAll_SQL</query-name>
<query-should-maintain-cache>true</query-should-maintain-cache>
<cascade-policy>1</cascade-policy>
<should-bind-all-parameters>undefined</should-bind-all-parameters>
<should-cache-statement>undefined</should-cache-statement>
<should-use-wrapper-policy>true</should-use-wrapper-policy>
<query-timeout>0</query-timeout>
<sql-string>SELECT * FROM fmb_results_v</sql-string>
<reference-class>freddie.model.FmbResultsV</reference-class>
<refresh-identity-map>false</refresh-identity-map>
<cache-usage>2</cache-usage>
<lock-mode>0</lock-mode>
<distinct-state>0</distinct-state>
<query-indirection>
<in-memory-query-indirection>
<policy>0</policy>
</in-memory-query-indirection>
</query-indirection>
<type>oracle.toplink.queryframework.ReadAllQuery</type>
</database-query>
</descriptor-named-queries>
</descriptor-query-manager>
</query-manager>
<event-manager>
<descriptor-event-manager empty-aggregate="true"/>
</event-manager>
<mappings>
<database-mapping>
<attribute-name>areaId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.AREA_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>areaName</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.AREA_NAME</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>categoryName</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.CATEGORY_NAME</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>catId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.CAT_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>catMasterId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.CAT_MASTER_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>catParamGroup</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.CAT_PARAM_GROUP</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>catParamResult</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.CAT_PARAM_RESULT</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>catParamValue</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.CAT_PARAM_VALUE</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>facility</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.FACILITY</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>groupName</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.GROUP_NAME</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>grpId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.GRP_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>sortCmId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.SORT_CM_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>sortScId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.SORT_SC_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>statusId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.STATUS_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>subCatId</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.SUB_CAT_ID</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
<database-mapping>
<attribute-name>subCatName</attribute-name>
<read-only>false</read-only>
<field-name>MPP_OWNER.FMB_RESULTS_V.SUB_CAT_NAME</field-name>
<type>oracle.toplink.mappings.DirectToFieldMapping</type>
</database-mapping>
</mappings>
<type>oracle.toplink.publicinterface.Descriptor</type>
</descriptor>
</descriptors>
</project>


Hopefully someone can help me with this behavior, I have no idea any more, how to fix that problem.

Thanks,

Chriss
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Sep 27 2006
Added on Aug 29 2006
8 comments
1,346 views