Oracle® Application Server Release Notes 10g Release 3 (10.1.3.1.0) for Microsoft Windows B31012-02 |
|
![]() Previous |
![]() Next |
This chapter describes issues associated with Oracle TopLink (TopLink). It includes the following topic:
This section describes general issues and workarounds. It includes the following topic:
This section contains information on the following issues:
Section 13.1.1.1, "Incorrect outer join SQL on SQLServer2005"
Section 13.1.1.2, "UnitOfWork.release() not Supported with External Transaction Control"
Section 13.1.1.3, "ReportQuery Results for Aggregate Functions may be Truncated"
Section 13.1.1.4, "Attribute Joining of One-to-One Mappings not Supported with Inheritance"
Section 13.1.1.5, "Using Oracle Database Advanced Data Types may Fail with Some Data Sources"
Section 13.1.1.6, "Returning Policy with Optimistic Locking"
TopLink generates incorrect outer join for SQL Server v2005. The outer join syntax generated is correct for earlier versions of this database. To work around this limitation, reconfigure the database compatibility (refer to the SQLServer documentation for details). Alternatively, you can use a custom TopLink database platform.
A unit of work synchronized with a Java Transaction API (JTA) will throw an exception if it is released. If the current transaction requires its changes to not be persisted, the JTA transaction must be rolled back.
When in a container-demarcated transaction, call setRollbackOnly()
on the EJB/session context:
Stateless public class MySessionBean implements SomeInterface { . @Resource SessionContext sc; . public void someMethod() { ... sc.setRollbackOnly(); } }
When in a bean-demarcated transaction then you call rollback()
on the UserTransaction obtained from the EJB/session context:
Stateless TransactionManagement(TransactionManagementType.BEAN) public class MySessionBean implements SomeInterface { . @Resource essionContext sc; . public void someMethod() { sc.getUserTransaction().begin(); ... sc.getUserTransaction().rollback(); } }
When using a ReportQuery to return calculated values, the data type of the column is used to convert the returned results. As a result, values returned for mapped attributes using average, variance, and standard deviation will be converted into the mapped attribute type and could result in loss of precision through truncation.
To work around this issue, use the field instead of the attribute's query key. For example:
Using the attribute's query key results in truncated value:
rq.addAverage("salary");
Use the database column instead to avoid truncation:
rq.addAverage("salary", eb.getField("SALARY.SALARY"));
It is not possible to execute a query on a class involved in an inheritance hierarchy which also has one-to-one joined attributes configured. This issue has already been addressed in TopLink Essentials and the solution will be available in the next release or a patch-set of this release.
When using Oracle9i and Oracle10g database platform-provided advanced data types with some data source implementations, failures may occur. The platform does not or cannot correctly unwrap the raw Oracle specific JDBC connection and cannot complete the necessary conversions. To avoid this issue, you can use TopLink internal connection pooling.
The returning policy, which allows values modified during INSERTs and UPDATEs to be returned and populated in cached objects, does not work in conjunction with numeric version optimistic locking. The value returned for all UPDATEs is 1 and does not provide meaningful locking protection.
Do not use numeric optimistic locking in conjunction with a returning policy.
TopLink assumes that date and time information returned from the server will use Timestamp
. If the JDBC driver returns a String
for the current date, TopLink will throw an exception. You should use a driver that returns Timestamp
or change the policy to use local time instead of server time.
When configuring a custom sequence table for a session, TopLink Workbench will throw an exception and your edits will not be written to the sessions.xml
when it is saved. As a workaround, configure sequencing at the project level. See "Configuring Sequencing at the Project Level" in the Oracle TopLink Developer's Guide for details.
This section contains information on the following issues:
Section 13.1.2.1, "Using Non-ASCII Characters with a JAXB 1.0 TopLink Project"
Section 13.1.2.3, "Multiple Composite Object Mappings Using Self "." XPath not Supported"
Section 13.1.2.4, "Marshalling a Non-root Object with Document Preservation"
When you generate class and method names that include non-ASCII characters, TopLink will throw an exception. This problem occurs when creating a JAXB 1.0 TopLink project from an XML schema that contains non-ASCII characters. Ensure that your XML schema does not contain any non-ASCII characters.
When using the Preserve Document option with an XML descriptor, you must also set the option on all other root descriptors.
TopLink supports only a single composite object mapping using the self (".") XPath. This does not restrict the number of composite object mappings, only the number of mappings where the composite object is mapped into the parent element instead of a child element.
When using document preservation (see "Configuring Document Preservation" in the Oracle TopLink Developer's Guide), only a root object can be marshalled. Attempting to marshal a non-root object with document preservation on will result in an exception.
This section contains information on the following issues:
By default, the TopLink installation allows only the user who performed the installation to access the installed files. If your TopLink installation is in a shared environment you must manually change the file permissions for all files in the <ORACLE_HOME>
directory after completing the installer. Executable files require read and execute access; non-executable files require read access. Refer to your operating system documentation for information on setting file permissions.
After installing Oracle TopLink, the Welcome page will appear in English – regardless of the language you selected during installation. To display your language-specific select the appropriate file in the <ORACLE_HOME>
\toplink\doc\
folder.