Session.readObject(..) v/s ReadObjectQuery
Is there any difference between using
session.readObject(DAO.class, expr) and
ReadObjectQuery(DAO.class, expr)?
Thanks,
Rajiv
Well, they're a very easy way to manage query re-use, and therefore reduce garbage collection.
Additionally, since named query construct can be separated from named query execution, named queries provide an easy way to abstract toplink in a service layer. All your service layer would provide would be mechanisms for executing queries by name. Your service layer could then pass through to toplink.
There are lots of benefits to this:
1. Query reuse. Implies less garbage which implies faster performance.
2. Abstraction. No toplink code outside the service layer (as you call it) (excepting perhaps valueholders).
3. Cleanliness. Your code has one mechanism for executing queries. By name. Why have lots of confusing ways to do the same thing?
4. Localization of queries. A surprisingly overlooked benefit. Named queries will normally be defined together, in one code location (eg 1 package). This makes it very easy to identify badly performing queries and re-write them without having to play hunt the expression builder.
Christian
Similar Messages
-
ReadObjectQuery - Invalid query key
Hello again :)
A have still stuck on TopLink :(
I created very simple example:
DB:
create table TESTIK
ID NUMBER not null,
NAZEV VARCHAR2(255),
VERSION NUMBER
I created new project in TopLink WorkBench, created new session.. I mean, there is no problem (but I'm not sure :) ) .
I created new Dynamic WebApplication in Eclipse, using Glassfish server and framework JSF...
My source:
This is my entity, represent table TESTIK
Testik.class:
package toplink.model.entity;
import java.io.Serializable;
public class Testik implements Serializable { // implements Serializable
private int id;
private String nazev;
private int version;
public Testik() {
public int getId() {
return id;
public void setId(int id) {
this.id = id;
public String getNazev() {
return nazev;
public void setNazev(String nazev) {
this.nazev = nazev;
public int getVersion() {
return version;
public void setVersion(int version) {
this.version = version;
This is for create session - i don't now, is it rights? :)
SessionSetting.class:
package toplink.services.settings;
import oracle.toplink.sessions.Project;
import oracle.toplink.threetier.Server;
import oracle.toplink.tools.workbench.XMLProjectReader;
public class SessionSetting extends oracle.toplink.platform.xml. jaxp.JAXPPlatform {
public SessionSetting() {
public Server getSession(){
System.setProperty("toplink.xml.platform", "oracle.toplink.platform.xml.jaxp.JAXPPlatform");
Project myProject = XMLProjectReader.read("c:/ecl_work/TopLink_Intro/src/META-INF/TopLink_Intro.xml", Thread.currentThread().getContextClassLoader());
Server serverSession = myProject.createServerSession();
return serverSession;
And if I want used some query:
public Testik findById(int id) {
SessionSetting ss = new SessionSetting();
Server session = ss.getSession();
Testik testik = (Testik) session.readObject(Testik.class, new ExpressionBuilder().get("id").equal(1));
return testik;
But this return Exception:
javax.servlet.ServletException: #{testikManagedBean.najdiTestik}: Exception [TOPLINK-6015] (Oracle TopLink - 11g (11.1.1.0.0) (Build 080909)): oracle.toplink.exceptions.QueryException
Exception Description: Invalid query key [id] in expression.
Query: ReadObjectQuery(toplink.model.entity.Testik)
Where testikManagedBean.najdiTestik call findById(int id) !
I tried used StoredProcedureCall, ReadObjectQuery, ValueReadQuery, ReadAllQuery and nothing works :(
Example:
public Collection<Testik> findAll(){
SessionSetting ss = new SessionSetting();
Server session = ss.getSession();
Collection<Testik> testiky = session.readAllObjects(Testik.class);
return testiky;
but in this example, it works a long time and return:
javax.servlet.ServletException: #{testikManagedBean.vsechnyTestiky}: Exception [TOPLINK-4002] (Oracle TopLink - 11g (11.1.1.0.0) (Build 080909)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Exception input/output: The Network Adapter could not establish the connection
Error Code: 17002
Query: ReadAllQuery(toplink.model.entity.Testik)
I know what it means in this problem, but I do not know where is it, because in the workbench I can normally connect to the database... Is this problem in sessions or where?
Please, I tried some very simple example, how to use TopLink and Queries and i'm still stuck.. I'm newbie in toplink and I do not know your advice...
Please, could you help me with my problem?
Thanks in advanceI still cannot find a problem :(
My Toplink_Intro.xml source is here :
<?xml version="1.0" encoding="UTF-8"?>
<toplink:object-persistence version="Oracle TopLink - 11g (11.1.1.0.0) (Build 080909)" xmlns:opm="http://xmlns.oracle.com/ias/xsds/opm" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:toplink="http://xmlns.oracle.com/ias/xsds/toplink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<opm:name>TopLink_Intro</opm:name>
<opm:class-mapping-descriptors>
<opm:class-mapping-descriptor xsi:type="toplink:relational-class-mapping-descriptor">
<opm:class>toplink.model.entity.Testik</opm:class>
<opm:alias>Testik</opm:alias>
<opm:primary-key>
<opm:field table="TESTIK" name="ID" xsi:type="opm:column"/>
</opm:primary-key>
<opm:events xsi:type="toplink:event-policy"/>
<opm:querying xsi:type="toplink:query-policy"/>
<opm:attribute-mappings>
<opm:attribute-mapping xsi:type="toplink:direct-mapping">
<opm:attribute-name>id</opm:attribute-name>
<opm:field table="TESTIK" name="ID" xsi:type="opm:column"/>
</opm:attribute-mapping>
<opm:attribute-mapping xsi:type="toplink:direct-mapping">
<opm:attribute-name>nazev</opm:attribute-name>
<opm:field table="TESTIK" name="NAZEV" xsi:type="opm:column"/>
</opm:attribute-mapping>
<opm:attribute-mapping xsi:type="toplink:direct-mapping">
<opm:attribute-name>version</opm:attribute-name>
<opm:read-only>true</opm:read-only>
<opm:field table="TESTIK" name="VERSION" xsi:type="opm:column"/>
</opm:attribute-mapping>
</opm:attribute-mappings>
<toplink:descriptor-type>independent</toplink:descriptor-type>
<toplink:locking xsi:type="toplink:version-locking-policy">
<toplink:version-field table="TESTIK" name="VERSION" xsi:type="opm:column"/>
</toplink:locking>
<toplink:instantiation/>
<toplink:copying xsi:type="toplink:instantiation-copy-policy"/>
<toplink:tables>
<toplink:table name="TESTIK"/>
</toplink:tables>
</opm:class-mapping-descriptor>
</opm:class-mapping-descriptors>
<toplink:login xsi:type="toplink:database-login">
<toplink:platform-class>oracle.toplink.platform.database.oracle.Oracle10Platform</toplink:platform-class>
<toplink:user-name>tpl</toplink:user-name>
<toplink:password>90412C7B7643C5A83BC1D672E05E1D31</toplink:password>
<toplink:driver-class>oracle.jdbc.OracleDriver</toplink:driver-class>
<toplink:connection-url>jdbc:oracle:thin:@172.17.2.69:1521:ORCL</toplink:connection-url>
</toplink:login>
</toplink:object-persistence>
and sessions.xml:
<?xml version="1.0" encoding="UTF-8"?>
<toplink-sessions version="11g (11.1.1.0.0)" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<session xsi:type="database-session">
<name>MyDBSession</name>
<event-listener-classes/>
<logging xsi:type="toplink-log">
<log-level>fine</log-level>
</logging>
<primary-project xsi:type="xml">C:/ecl_work/TopLink_Intro/src/META-INF/TopLink_Intro.xml</primary-project>
<login xsi:type="database-login">
<platform-class>oracle.toplink.platform.database.oracle.Oracle10Platform</platform-class>
<user-name>tpl</user-name>
<password>90412C7B7643C5A83BC1D672E05E1D31</password>
<sequencing>
<default-sequence xsi:type="table-sequence">
<name>Default</name>
</default-sequence>
</sequencing>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<connection-url>jdbc:oracle:thin:@172.17.2.69:1521:ORCL</connection-url>
<struct-converters/>
</login>
</session>
</toplink-sessions>
Any idea, why I have still this exception:
javax.servlet.ServletException: #{testikManagedBean.najdiTestik}: Exception [TOPLINK-6015] (Oracle TopLink - 11g (11.1.1.0.0) (Build 080909)): oracle.toplink.exceptions.QueryException
Exception Description: Invalid query key [id] in expression.
Query: ReadObjectQuery(toplink.model.entity.Testik)
in this code?
Testik testik = (Testik) session.readObject(Testik.class, new ExpressionBuilder().get("id").equal(1));
Thanks in advance
Edit:
And if I used this code:
Collection<Testik> testiky = session.readAllObjects(Testik.class);
then returns this exception:
javax.servlet.ServletException: #{testikManagedBean.vsechnyTestiky}: Exception [TOPLINK-4002] (Oracle TopLink - 11g (11.1.1.0.0) (Build 080909)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: ORA-00936: missing word
Error Code: 936
Call: SELECT FROM TESTIK
Query: ReadAllQuery(toplink.model.entity.Testik)
Edited by: KLD on Nov 10, 2008 12:34 AM -
Long story as short as I can make it...
We want to make changes to an object outside a unit of work (it's a longer story)...
and then when we're done making changes, get a clean copy of the object from the
database in a unitOfWork, apply our changes to this, and then commit...
I've got an object:
(1) Customer changedCustomer = getCustomerToChange();
(2)changedCustomer.setCode("123");
I was hoping to do something like the following:
(3) UnitOfWork uow = clientSession.getUnitOfWork();
(4) Customer existingCustom = new Customer();
(5) existingCustomer.setId(changedCustomer.getId());
(6) existingCustomer = uow.readObject(existingCustomer); // Get a clean copy of the customer
(7) existingCustomer = (CustomerBO)uow.registerObject(existingCustomer);
(8) existingCustomer = uow.mergeClone(changedCustomer); // Apply our changes...
(9) uow.commit(); // commit...
The problem is that after line (6), existingCustomer.getCode() returns "123",
rather than the value that is stored in the database... So existingCustomer
is coming from out cache(?) rather than being loaded clean from the database, and
TOPLink doesn't see that the code has changed in lines 8/9...
I tried a call to refreshObject() to ensure I'm getting a clean copy from the database:
(6.5) existingCustomer = uow.refreshObject(existingCustomer);
After this, getCode() returns the value from the database, as expected... BUT(!)
changedCustomer.getCode now also returns the value from the database... changedCustomer
and existing customer have different hashCode() values...
Am I missing something? Is what I am trying possible?
ChrisChris
You're probably trying to do changes on the original object.
I suppose your method getCustomerToChange() returns an object read through a "session.readObject(...)" or something like that.
Then you modify it in (2).
At step (6) you try to read the original, but you get a clone of the one you modified at step (2)!
And when you try to do a refresh (6.5) you replace the original object you modifed in step (2) with the database value.
You souldn't modify an object read through the session.
Use the uow to read it or do the modifications on a copy instead.
Ivan -
Hi
We are using 10.1.3.4 SOA n JDev. The MWP files are not opening in Jdev and while opening the project we are getting errors with the following log:
java.lang.RuntimeException: java.lang.ClassCastException: java.lang.String
at oracle.toplink.addin.manager.MWJDeveloperMediator.openTopLinkProject(MWJDeveloperMediator.java:328)
at oracle.toplink.addin.manager.MWJDeveloperMediator.openTopLinkProjects(MWJDeveloperMediator.java:271)
at oracle.toplink.addin.appnav.TopLinkProjectChangeListener.projectOpened(TopLinkProjectChangeListener.java:93)
at oracle.ide.model.Project$StorageListener.fireProjectOpened(Project.java:1168)
at oracle.ide.model.Project$StorageListener.mav$fireProjectOpened(Project.java:1135)
at oracle.ide.model.Project$NL.nodeOpened(Project.java:1127)
at oracle.ide.model.Node.fireNodeOpened(Node.java:1139)
at oracle.ide.model.Node.open(Node.java:573)
at oracle.ide.model.Node.ensureOpen(Node.java:976)
at oracle.ide.model.DataContainer$2.run(DataContainer.java:147)
at oracle.ide.model.Node.runWhileSynchronized(Node.java:809)
at oracle.ide.model.DataContainer.getSharedPropertiesOnly(DataContainer.java:152)
at oracle.ide.model.Project.getPropertiesImpl(Project.java:1097)
at oracle.ide.model.Project.getProperties(Project.java:323)
at oracle.ide.model.ProjectContent.getInstance(ProjectContent.java:122)
at oracle.ide.model.ContentLevel.initChildren(ContentLevel.java:88)
at oracle.ide.model.ContentSetFilter.initChildren(ContentSetFilter.java:28)
at oracle.ide.model.ContentFilter.getChildrenImpl(ContentFilter.java:121)
at oracle.ide.model.ContentFilter.getChildren(ContentFilter.java:64)
at oracle.ideimpl.explorer.BaseTreeExplorer.addChildren(BaseTreeExplorer.java:360)
at oracle.ideimpl.explorer.BaseTreeExplorer.open(BaseTreeExplorer.java:872)
at oracle.ideimpl.explorer.BaseTreeExplorer$2.run(BaseTreeExplorer.java:1788)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: java.lang.ClassCastException: java.lang.String
at oracle.toplink.mappings.foundation.AbstractCompositeCollectionMapping.valueFromRow(AbstractCompositeCollectionMapping.java:727)
at oracle.toplink.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:1045)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:244)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:525)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:381)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObjectsInto(ObjectBuilder.java:677)
at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.buildObjectsFromRows(DatabaseQueryMechanism.java:142)
at oracle.toplink.queryframework.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:483)
at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:812)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:780)
at oracle.toplink.queryframework.ReadAllQuery.execute(ReadAllQuery.java:451)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:2089)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:993)
at oracle.toplink.internal.indirection.NoIndirectionPolicy.valueFromQuery(NoIndirectionPolicy.java:262)
at oracle.toplink.mappings.ForeignReferenceMapping.valueFromRow(ForeignReferenceMapping.java:1151)
at oracle.toplink.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:1045)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:244)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:525)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:381)
at oracle.toplink.queryframework.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:456)
at oracle.toplink.queryframework.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:424)
at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:812)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:780)
at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:388)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:2089)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:993)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:950)
at oracle.toplink.publicinterface.Session.readObject(Session.java:2591)
at oracle.toplink.workbench.ui.WorkbenchSession.getMWProjectNamed(WorkbenchSession.java:76)
at oracle.toplink.addin.persistence.MWJDeveloperPersistence.open(MWJDeveloperPersistence.java:234)
at oracle.toplink.addin.manager.MWJDeveloperMediator.openTopLinkProject(MWJDeveloperMediator.java:323)
... 28 more
Please provide inputs for the resolution of this as the DB Adapter wizards are not showing proper configuration and we want to do some changes in the DB adapter setup.
ThanksBetter post this on the SOA Suite forum.
Is this something that happens on various laptops - or just on one? -
Project does not open with TopLink 10.1.3 DP3 R2
I have a project that opens fine with 10.0.3 DP Build 031022 but won't open with 10g DP3 Build 041116. Here's the error. I 'd appreciate any suggestions or workarounds short of re-creating the project from scratch.
racle.toplink.workbench.framework.OpenException: Exception [TOPLINK-106] (Oracle TopLink - 10g Developer Preview 3 (10.1.3.0 ) (Build 041116)): oracle.toplink.exceptions.DescriptorException
Exception Description: The method [legacySetDatabasePlatformNameForTopLink] on the object is throwing an exception.
Argument: [Oracle9]
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.lang.IllegalArgumentException: missing database platform named: Oracle9
Mapping: oracle.toplink.mappings.DirectToFieldMapping[databasePlatformName-->platform-name]
Descriptor: XMLDescriptor(oracle.toplink.workbench.mappingsmodel.db.MWDatabase --> [DatabaseTable(database)])
at oracle.toplink.workbench.mappingsplugin.MWPlugin.open(MWPlugin.java:267)
at oracle.toplink.workbench.framework.internal.FrameworkApplication.open(FrameworkApplication.java:608)
at oracle.toplink.workbench.framework.internal.FrameworkNodeManager.openCallback(FrameworkNodeManager.java:325)
at oracle.toplink.workbench.framework.internal.RunnableProjectLoader.run2(RunnableProjectLoader.java:81)
at oracle.toplink.workbench.framework.internal.RunnableProjectLoader.run(RunnableProjectLoader.java:68)
at java.lang.Thread.run(Thread.java:534)
Caused by: Exception [TOPLINK-106] (Oracle TopLink - 10g Developer Preview 3 (10.1.3.0 ) (Build 041116)): oracle.toplink.exceptions.DescriptorException
Exception Description: The method [legacySetDatabasePlatformNameForTopLink] on the object is throwing an exception.
Argument: [Oracle9]
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.lang.IllegalArgumentException: missing database platform named: Oracle9
Mapping: oracle.toplink.mappings.DirectToFieldMapping[databasePlatformName-->platform-name]
Descriptor: XMLDescriptor(oracle.toplink.workbench.mappingsmodel.db.MWDatabase --> [DatabaseTable(database)])
at oracle.toplink.exceptions.DescriptorException.targetInvocationWhileSettingValueThruMethodAccessor(DescriptorException.java:1676)
at oracle.toplink.internal.descriptors.MethodAttributeAccessor.setAttributeValueInObject(MethodAttributeAccessor.java:145)
at oracle.toplink.mappings.DatabaseMapping.setAttributeValueInObject(DatabaseMapping.java:1006)
at oracle.toplink.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:912)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:235)
at oracle.toplink.sdk.SDKAggregateObjectMapping.buildCompositeObject(SDKAggregateObjectMapping.java:56)
at oracle.toplink.mappings.foundation.AbstractCompositeObjectMapping.valueFromRow(AbstractCompositeObjectMapping.java:120)
at oracle.toplink.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:911)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:235)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:504)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:372)
at oracle.toplink.queryframework.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:408)
at oracle.toplink.queryframework.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:372)
at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:727)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:559)
at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:336)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:1977)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:973)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:930)
at oracle.toplink.publicinterface.Session.readObject(Session.java:2429)
at oracle.toplink.workbench.mappingsio.legacy.PersistenceTools50.readMWProjectNamed(PersistenceTools50.java:328)
at oracle.toplink.workbench.mappingsio.legacy.LegacyIOFacade.read50Project(LegacyIOFacade.java:14)
at oracle.toplink.workbench.mappingsio.ProjectReader.readPreviousVersion(ProjectReader.java:92)
at oracle.toplink.workbench.mappingsio.ProjectReader.read(ProjectReader.java:85)
at oracle.toplink.workbench.mappingsio.ProjectIOManager.read(ProjectIOManager.java:48)
at oracle.toplink.workbench.mappingsio.ProjectIOManager.read(ProjectIOManager.java:44)
at oracle.toplink.workbench.mappingsplugin.MWPlugin.open(MWPlugin.java:265)
... 5 more
Caused by: java.lang.reflect.InvocationTargetExceptionFixed it by opening the .mwp file with a text editor and changing "Oracle9" string to "Oracle9i" and then saved it from 10.1.3DP3 R2 Toplink. Hope this is the correct fix.
-
hi all,
I need to fetch single row from table and have to print it on JSF page in outputText and inputputText boxes....
what should be the procedure???
how to write the query?
and the resultset that is retrieved is in the form of vector how to put their values in outputText boxes?Hello,
Your questions are pretty broad, but let me address the TopLink aspects of your questions. Once you have an object retrieved via TopLink, then you can consider your JSF presentation of the data that is housed within the object.
Lets say you have a java class named X, and you want instances of X persisted to a table that is also named X. Now you are interested in using TopLink to hydrate an instance of X so that you can render some information for that instance, which contains of course data from table X.
In general, you TopLink map X.class to the table named X with all of the columns in the table mapped to instance attributes defined on X.java or one of its superclasses.
Now the question is how to locate the row of interest from table X? Since you are interested in only one row, it is most likely that you are interested in identifying that row of interest by its primary key, which is likely some numeric surrogate key.
Lets assume you are interested in retrieval by primary key. Lets also assume that the X_ID column on the X table is its primary key. Lets also assume the id instance attribute on X.java (or from one of its superclasses) is TopLink mapped and is simply a direct to field mapping, so the id instance attribute on X.java would take on the value housed in X.X_ID. Lets further assume you want to find the instance of X where X_ID = 123.
The resultset that is retrieved via TopLink does not have to be a Vector (List) of objects. You can express to TopLink that you are only interested in retrieving one object by use of oracle.toplink.queryframework.ReadObjectQuery or oracle.toplink.sessions.Session.readObject().
If you choose the Session.readObject() approach, here is how you obtain the reference to the instance of X that represents the row where X.X_ID = 123:
obtain reference to Session via SessionManager.getManager().getSession(sessionName);
ExpressionBuilder builder = new ExpressionBuilder();
Expression selectionCriteria = builder.get("id").equal(123);
X foundInstance = (X) session.readObject(X.class,selectionCriteria);
If you choose the ReadObjectQuery approach, here is how you obtain the reference:
ReadObjectQuery query = new ReadObjectQuery();
query.setReferenceClass(X.class);
query.setSelectionCriteria(selectionCriteria); // defined above
X foundInstance = (X) session.executeQuery(query);
Once you have a handle to the X instance of interest, you can then go about rendering information about it to an end user via a JSP or JSF JSP page. Typically the queries that I show above are written as part of the implementation of an operation on a Session EJB, but it can be done without a Session EJB as well.
I suggest you take a look at the TopLink Developer's Guide : http://download-west.oracle.com/docs/cd/B31017_01/web.1013/b28218/toc.htm as well as the TopLink API Reference from Javadoc : http://download-west.oracle.com/docs/cd/B31017_01/web.1013/b28219/index.html. Both of these documents are for TopLink 10.1.3.1, but you probably want to find the documentation for the version of TopLink you are using just in case.
Hope that helps,
Doug -
NullPointer exception in DatabaseAccessor.prepareStatement
I have been trying to trace the following error for about 2 days now without any luck. Also the surprising part is that this class does not have a javadoc in the API nor is the source code available in the Toplink-src zip file included with the Toplink 101300 download.
The query to be executed is being generated and output correctly, with all bind variables having valid values.
[TopLink Fine]: 2006.06.29 03:14:22.079--UnitOfWork(8886)--Connection(8888)--Thread(Thread[ApplicationServerThread-0,5,RequestThreadGroup])--SELECT t1.PROMOTION_ID, t1.INVOICE_STATUS, t1.INVOICE_TO, t1.INVOICE_DATE, t1.OVERRIDE_REASON, t1.STATUS_UPDATED_DATE, t1.INVOICE_NUMBER, t1.STATUS_UPDATED_BY, t1.PROGRAM_ID, t1.STATUS_CODE, t1.PROMOTION_APP_ID, t1.AUDIT_ID FROM CALENDAR t4, PROMOTION_APPLICATIONS t3, PROGRAM t2, PROMOTIONS t1, STATUS t0 WHERE (((t0.STATUS_CODE = ?) AND ((t2.PROGRAM_ID = ?) AND ((t3.ITEM_NUMBER = ?) AND (t4.PROMOTION_PERIOD = ?)))) AND ((((t0.STATUS_CODE = t1.STATUS_CODE) AND (t2.PROGRAM_ID = t1.PROGRAM_ID)) AND (t3.PROMOTION_APP_ID = t1.PROMOTION_APP_ID)) AND (t4.PROMOTION_PERIOD = t3.PROMOTION_PERIOD)))
bind => [A, 1.0, 178491.0, 200703]
Can someone please help me understand what is wrong with the query. The error stack is as follows:
[TopLink Warning]: 2006.06.29 03:14:22.079--UnitOfWork(8886)--Thread(Thread[ApplicationServerThread-0,5,RequestThreadGroup])--java.lang.NullPointerException
06/06/29 15:14:22 java.lang.NullPointerException
06/06/29 15:14:22 at oracle.toplink.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1159)
06/06/29 15:14:22 at oracle.toplink.internal.databaseaccess.DatabaseCall.prepareStatement(DatabaseCall.java:591)
06/06/29 15:14:22 at oracle.toplink.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:489)
06/06/29 15:14:22 at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:442)
06/06/29 15:14:22 at oracle.toplink.publicinterface.UnitOfWork.executeCall(UnitOfWork.java:1603)
06/06/29 15:14:22 at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:117)
06/06/29 15:14:22 at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:103)
06/06/29 15:14:22 at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.cursorSelectAllRows(DatasourceCallQueryMechanism.java:60)
06/06/29 15:14:22 at oracle.toplink.queryframework.ScrollableCursorPolicy.execute(ScrollableCursorPolicy.java:72)
06/06/29 15:14:22 at oracle.toplink.queryframework.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:449)
06/06/29 15:14:22 at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:800)
06/06/29 15:14:22 at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:603)
06/06/29 15:14:22 at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:768)
06/06/29 15:14:22 at oracle.toplink.queryframework.ReadAllQuery.execute(ReadAllQuery.java:436)
06/06/29 15:14:22 at oracle.toplink.queryframework.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:825)
06/06/29 15:14:22 at oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(UnitOfWork.java:2532)
06/06/29 15:14:22 at oracle.toplink.publicinterface.Session.executeQuery(Session.java:981)
06/06/29 15:14:22 at oracle.toplink.publicinterface.Session.executeQuery(Session.java:938)
06/06/29 15:14:22 at org.springframework.orm.toplink.TopLinkTemplate$2.readFromSession(TopLinkTemplate.java:233)
06/06/29 15:14:22 at org.springframework.orm.toplink.SessionReadCallback.doInTopLink(SessionReadCallback.java:75)
06/06/29 15:14:22 at org.springframework.orm.toplink.TopLinkTemplate.execute(TopLinkTemplate.java:152)
06/06/29 15:14:22 at org.springframework.orm.toplink.TopLinkTemplate.executeQuery(TopLinkTemplate.java:227)
06/06/29 15:14:22 at org.springframework.orm.toplink.TopLinkTemplate.executeQuery(TopLinkTemplate.java:213)
06/06/29 15:14:22 at xxx.core.persistence.AnyTypeObjectDao.find(AnyTypeObjectDao.java:97)
06/06/29 15:14:22 at xxx.model.service.BusinessValidationServiceImpl.validateXXX(BusinessValidationServiceImpl.java:406)
06/06/29 15:14:22 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
06/06/29 15:14:22 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
06/06/29 15:14:22 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
06/06/29 15:14:22 at java.lang.reflect.Method.invoke(Method.java:585)
06/06/29 15:14:22 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
06/06/29 15:14:22 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
06/06/29 15:14:22 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
06/06/29 15:14:22 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
06/06/29 15:14:22 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
06/06/29 15:14:22 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
06/06/29 15:14:22 at $Proxy0.validateXXX(Unknown Source)
06/06/29 15:14:22 at xxx.model.service.PromotionsServiceImpl.persist(PromotionsServiceImpl.java:198)
06/06/29 15:14:22 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
06/06/29 15:14:22 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
06/06/29 15:14:22 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
06/06/29 15:14:22 at java.lang.reflect.Method.invoke(Method.java:585)
06/06/29 15:14:22 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
06/06/29 15:14:22 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
06/06/29 15:14:22 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
06/06/29 15:14:22 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
06/06/29 15:14:22 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
06/06/29 15:14:22 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
06/06/29 15:14:22 at $Proxy1.persist(Unknown Source)
06/06/29 15:14:22 at xxx.view.beans.PromotionApplicationMaintenanceBean.save(PromotionApplicationMaintenanceBean.java:737)
06/06/29 15:14:22 at xxx.view.beans.PromotionApplicationMaintenanceBean.persist(PromotionApplicationMaintenanceBean.java:707)
06/06/29 15:14:22 at xxx.view.beans.PromotionApplicationMaintenanceBean.executePersist(PromotionApplicationMaintenanceBean.java:480)
06/06/29 15:14:22 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
06/06/29 15:14:22 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
06/06/29 15:14:22 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
06/06/29 15:14:22 at java.lang.reflect.Method.invoke(Method.java:585)
06/06/29 15:14:22 at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
06/06/29 15:14:22 at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
06/06/29 15:14:22 at oracle.adf.view.faces.component.UIXCommand.broadcast(UIXCommand.java:211)
06/06/29 15:14:22 at oracle.adf.view.faces.component.UIXCollection.broadcast(UIXCollection.java:94)
06/06/29 15:14:22 at oracle.adf.view.faces.component.UIXPage.broadcast(UIXPage.java:122)
06/06/29 15:14:22 at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
06/06/29 15:14:22 at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
06/06/29 15:14:22 at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
06/06/29 15:14:22 at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
06/06/29 15:14:22 at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
06/06/29 15:14:22 at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
06/06/29 15:14:22 at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
06/06/29 15:14:22 at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367)
06/06/29 15:14:22 at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336)
06/06/29 15:14:22 at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196)
06/06/29 15:14:22 at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87)
06/06/29 15:14:22 at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
06/06/29 15:14:22 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292)
06/06/29 15:14:22 at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
06/06/29 15:14:22 at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:78)
06/06/29 15:14:22 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
06/06/29 15:14:22 at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:143)
06/06/29 15:14:22 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
06/06/29 15:14:22 at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:138)
06/06/29 15:14:22 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
06/06/29 15:14:22 at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:246)
06/06/29 15:14:22 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
06/06/29 15:14:22 at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:220)
06/06/29 15:14:22 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
06/06/29 15:14:22 at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173)
06/06/29 15:14:22 at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:120)
06/06/29 15:14:22 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:627)
06/06/29 15:14:22 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:376)
06/06/29 15:14:22 at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870)
06/06/29 15:14:22 at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)
06/06/29 15:14:22 at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:218)
06/06/29 15:14:22 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:119)
06/06/29 15:14:22 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
06/06/29 15:14:22 at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
06/06/29 15:14:22 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
06/06/29 15:14:22 at java.lang.Thread.run(Thread.java:595)Hi,
I have NPE in DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1303) too and I'm wondering about solution of roy77's case.
Please can you (roy77, jsutherl, ... ) give a solution or any tip?
So I get NPE (see thereinafter ) sporadically in call uow.readObject(..) in thread witch is involved as individual automat - dispenser. So yes, multiple threads are involved.
Sometimes(!) after this NPE is connection done so I must do
if (! S4SessionFactory.getS4Session().getServer().isConnected()) {
S4SessionFactory.getS4Session().getServer().login();
I think it is error in my architecture but can not find it.
Thank you very much for any hint.
Jara
07/01/06 08:30:43 java.lang.NullPointerException
07/01/06 08:30:43 at oracle.toplink.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1303)
07/01/06 08:30:43 at oracle.toplink.queryframework.SQLCall.prepareStatement(SQLCall.java:185)
07/01/06 08:30:43 at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:636)
07/01/06 08:30:43 at oracle.toplink.publicinterface.Session.executeCall(Session.java:793)
07/01/06 08:30:43 at oracle.toplink.internal.queryframework.CallQueryMechanism.executeCall(CallQueryMechanism.java:131)
07/01/06 08:30:43 at oracle.toplink.internal.queryframework.CallQueryMechanism.executeCall(CallQueryMechanism.java:115)
07/01/06 08:30:43 at oracle.toplink.internal.queryframework.CallQueryMechanism.selectOneRow(CallQueryMechanism.java:586)
07/01/06 08:30:43 at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.selectOneRowFromTable(ExpressionQueryMechanism.java:776)
07/01/06 08:30:43 at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.selectOneRow(ExpressionQueryMechanism.java:747)
07/01/06 08:30:43 at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:364)
07/01/06 08:30:43 at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:493)
07/01/06 08:30:43 at oracle.toplink.queryframework.ReadQuery.execute(ReadQuery.java:125)
07/01/06 08:30:43 at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:1958)
07/01/06 08:30:43 at oracle.toplink.threetier.ClientSession.internalExecuteQuery(ClientSession.java:390)
07/01/06 08:30:43 at oracle.toplink.publicinterface.Session.executeQuery(Session.java:1086)
07/01/06 08:30:43 at oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(UnitOfWork.java:2223)
07/01/06 08:30:43 at oracle.toplink.publicinterface.Session.executeQuery(Session.java:1086)
07/01/06 08:30:43 at oracle.toplink.publicinterface.Session.executeQuery(Session.java:1038)
07/01/06 08:30:43 at oracle.toplink.publicinterface.Session.readObject(Session.java:2492)
07/01/06 08:30:43 at system.automat.AutomatKonverze.run(AutomatKonverze.java:149) -
Conversion from Toplink 9.0.4,5 to 10.1.3.1.0
Hi
I'm trying to do the mentioned convertion but during the processing of the mwp file the following error occurs.
Is there any known bug that causes such behavior?
oracle.toplink.workbench.framework.OpenException: Wyjątek [TOPLINK-101] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.exceptions.DescriptorException
Opis wyjątku: Użyta metoda wyzwoliła wyjątek.
Wyjątek wewnętrzny: java.lang.reflect.InvocationTargetException
Wyjątek wywołania celu: java.lang.ClassCastException: java.lang.String
Odwzorowanie: oracle.toplink.mappings.TransformationMapping[legacySecondaryReferenceHandles]
Deskryptor: XMLDescriptor(oracle.toplink.workbench.mappingsmodel.descriptor.relational.MWDescriptorMultiTableInfoPolicy --> [DatabaseTable(multi-table-info-policy)])
at oracle.toplink.workbench.mappingsplugin.MappingsPlugin.open(MappingsPlugin.java:290)
at oracle.toplink.workbench.framework.internal.FrameworkApplication.open(FrameworkApplication.java:689)
at oracle.toplink.workbench.framework.internal.FrameworkNodeManager.openCallback(FrameworkNodeManager.java:341)
at oracle.toplink.workbench.framework.internal.RunnableProjectLoader.run2(RunnableProjectLoader.java:76)
at oracle.toplink.workbench.framework.internal.RunnableProjectLoader.run(RunnableProjectLoader.java:63)
at java.lang.Thread.run(Thread.java:595)
Caused by: Wyjątek [TOPLINK-101] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.exceptions.DescriptorException
Opis wyjątku: Użyta metoda wyzwoliła wyjątek.
Wyjątek wewnętrzny: java.lang.reflect.InvocationTargetException
Wyjątek wywołania celu: java.lang.ClassCastException: java.lang.String
Odwzorowanie: oracle.toplink.mappings.TransformationMapping[legacySecondaryReferenceHandles]
Deskryptor: XMLDescriptor(oracle.toplink.workbench.mappingsmodel.descriptor.relational.MWDescriptorMultiTableInfoPolicy --> [DatabaseTable(multi-table-info-policy)])
at oracle.toplink.exceptions.DescriptorException.targetInvocationWhileInvokingAttributeMethod(DescriptorException.java:1634)
at oracle.toplink.mappings.transformers.MethodBasedAttributeTransformer.buildAttributeValue(MethodBasedAttributeTransformer.java:114)
at oracle.toplink.mappings.foundation.AbstractTransformationMapping.invokeAttributeTransformer(AbstractTransformationMapping.java:678)
at oracle.toplink.internal.indirection.NoIndirectionPolicy.valueFromMethod(NoIndirectionPolicy.java:252)
at oracle.toplink.mappings.foundation.AbstractTransformationMapping.readFromRowIntoObject(AbstractTransformationMapping.java:900)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:244)
at oracle.toplink.sdk.SDKAggregateObjectMapping.buildCompositeObject(SDKAggregateObjectMapping.java:56)
at oracle.toplink.mappings.foundation.AbstractCompositeObjectMapping.valueFromRow(AbstractCompositeObjectMapping.java:155)
at oracle.toplink.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:1021)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:244)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:525)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:381)
at oracle.toplink.queryframework.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:455)
at oracle.toplink.queryframework.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:424)
at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:811)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:779)
at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:388)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:2073)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:988)
at oracle.toplink.internal.indirection.NoIndirectionPolicy.valueFromQuery(NoIndirectionPolicy.java:262)
at oracle.toplink.mappings.ForeignReferenceMapping.valueFromRow(ForeignReferenceMapping.java:1139)
at oracle.toplink.mappings.OneToOneMapping.valueFromRow(OneToOneMapping.java:1030)
at oracle.toplink.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:1021)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:244)
at oracle.toplink.sdk.SDKAggregateCollectionMapping.buildCompositeObject(SDKAggregateCollectionMapping.java:62)
at oracle.toplink.mappings.foundation.AbstractCompositeCollectionMapping.valueFromRow(AbstractCompositeCollectionMapping.java:735)
at oracle.toplink.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:1021)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:244)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:525)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:381)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObjectsInto(ObjectBuilder.java:677)
at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.buildObjectsFromRows(DatabaseQueryMechanism.java:142)
at oracle.toplink.queryframework.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:483)
at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:811)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:779)
at oracle.toplink.queryframework.ReadAllQuery.execute(ReadAllQuery.java:451)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:2073)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:988)
at oracle.toplink.internal.indirection.NoIndirectionPolicy.valueFromQuery(NoIndirectionPolicy.java:262)
at oracle.toplink.mappings.ForeignReferenceMapping.valueFromRow(ForeignReferenceMapping.java:1139)
at oracle.toplink.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:1021)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:244)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:525)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:381)
at oracle.toplink.queryframework.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:455)
at oracle.toplink.queryframework.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:424)
at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:811)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:779)
at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:388)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:2073)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:988)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:945)
at oracle.toplink.publicinterface.Session.readObject(Session.java:2575)
at oracle.toplink.workbench.mappingsio.legacy.PersistenceTools50.readMWProjectNamed(PersistenceTools50.java:322)
at oracle.toplink.workbench.mappingsio.legacy.LegacyIOFacade.read50Project(LegacyIOFacade.java:14)
at oracle.toplink.workbench.mappingsio.ProjectReader.readLegacyProject(ProjectReader.java:243)
at oracle.toplink.workbench.mappingsio.ProjectReader.read(ProjectReader.java:102)
at oracle.toplink.workbench.mappingsio.ProjectIOManager.read(ProjectIOManager.java:59)
at oracle.toplink.workbench.mappingsplugin.MappingsPlugin.open(MappingsPlugin.java:286)
... 5 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at oracle.toplink.internal.security.PrivilegedAccessController.invokeMethod(PrivilegedAccessController.java:501)
at oracle.toplink.mappings.transformers.MethodBasedAttributeTransformer.buildAttributeValue(MethodBasedAttributeTransformer.java:108)
... 65 more
Caused by: java.lang.ClassCastException: java.lang.String
at oracle.toplink.workbench.mappingsmodel.descriptor.relational.MWDescriptorMultiTableInfoPolicy.legacy50GetSecondaryReferenceHandlesFromRecordForTopLink(MWDescriptorMultiTableInfoPolicy.java:264)
... 70 moreIt doesn't seem like the xml file is corrupted because toplink 9045 processes it successfully.
Below is the same stack trace but with english descriptions, maybe this will be more helpful.
oracle.toplink.workbench.framework.OpenException: Exception [TOPLINK-101] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.exceptions.DescriptorException
Exception Description: The underlying method triggered an exception.
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.lang.ClassCastException: java.lang.String
Mapping: oracle.toplink.mappings.TransformationMapping[legacySecondaryReferenceHandles]
Descriptor: XMLDescriptor(oracle.toplink.workbench.mappingsmodel.descriptor.relational.MWDescriptorMultiTableInfoPolicy --> [DatabaseTable(multi-table-info-policy)])
at oracle.toplink.workbench.mappingsplugin.MappingsPlugin.open(MappingsPlugin.java:290)
at oracle.toplink.workbench.framework.internal.FrameworkApplication.open(FrameworkApplication.java:689)
at oracle.toplink.workbench.framework.internal.FrameworkNodeManager.openCallback(FrameworkNodeManager.java:341)
at oracle.toplink.workbench.framework.internal.RunnableProjectLoader.run2(RunnableProjectLoader.java:76)
at oracle.toplink.workbench.framework.internal.RunnableProjectLoader.run(RunnableProjectLoader.java:63)
at java.lang.Thread.run(Thread.java:595)
Caused by: Exception [TOPLINK-101] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.exceptions.DescriptorException
Exception Description: The underlying method triggered an exception.
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.lang.ClassCastException: java.lang.String
Mapping: oracle.toplink.mappings.TransformationMapping[legacySecondaryReferenceHandles]
Descriptor: XMLDescriptor(oracle.toplink.workbench.mappingsmodel.descriptor.relational.MWDescriptorMultiTableInfoPolicy --> [DatabaseTable(multi-table-info-policy)])
at oracle.toplink.exceptions.DescriptorException.targetInvocationWhileInvokingAttributeMethod(DescriptorException.java:1634)
at oracle.toplink.mappings.transformers.MethodBasedAttributeTransformer.buildAttributeValue(MethodBasedAttributeTransformer.java:114)
at oracle.toplink.mappings.foundation.AbstractTransformationMapping.invokeAttributeTransformer(AbstractTransformationMapping.java:678)
at oracle.toplink.internal.indirection.NoIndirectionPolicy.valueFromMethod(NoIndirectionPolicy.java:252)
at oracle.toplink.mappings.foundation.AbstractTransformationMapping.readFromRowIntoObject(AbstractTransformationMapping.java:900)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:244)
at oracle.toplink.sdk.SDKAggregateObjectMapping.buildCompositeObject(SDKAggregateObjectMapping.java:56)
at oracle.toplink.mappings.foundation.AbstractCompositeObjectMapping.valueFromRow(AbstractCompositeObjectMapping.java:155)
at oracle.toplink.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:1021)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:244)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:525)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:381)
at oracle.toplink.queryframework.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:455)
at oracle.toplink.queryframework.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:424)
at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:811)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:779)
at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:388)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:2073)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:988)
at oracle.toplink.internal.indirection.NoIndirectionPolicy.valueFromQuery(NoIndirectionPolicy.java:262)
at oracle.toplink.mappings.ForeignReferenceMapping.valueFromRow(ForeignReferenceMapping.java:1139)
at oracle.toplink.mappings.OneToOneMapping.valueFromRow(OneToOneMapping.java:1030)
at oracle.toplink.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:1021)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:244)
at oracle.toplink.sdk.SDKAggregateCollectionMapping.buildCompositeObject(SDKAggregateCollectionMapping.java:62)
at oracle.toplink.mappings.foundation.AbstractCompositeCollectionMapping.valueFromRow(AbstractCompositeCollectionMapping.java:735)
at oracle.toplink.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:1021)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:244)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:525)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:381)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObjectsInto(ObjectBuilder.java:677)
at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.buildObjectsFromRows(DatabaseQueryMechanism.java:142)
at oracle.toplink.queryframework.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:483)
at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:811)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:779)
at oracle.toplink.queryframework.ReadAllQuery.execute(ReadAllQuery.java:451)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:2073)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:988)
at oracle.toplink.internal.indirection.NoIndirectionPolicy.valueFromQuery(NoIndirectionPolicy.java:262)
at oracle.toplink.mappings.ForeignReferenceMapping.valueFromRow(ForeignReferenceMapping.java:1139)
at oracle.toplink.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:1021)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:244)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:525)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:381)
at oracle.toplink.queryframework.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:455)
at oracle.toplink.queryframework.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:424)
at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:811)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:779)
at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:388)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:2073)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:988)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:945)
at oracle.toplink.publicinterface.Session.readObject(Session.java:2575)
at oracle.toplink.workbench.mappingsio.legacy.PersistenceTools50.readMWProjectNamed(PersistenceTools50.java:322)
at oracle.toplink.workbench.mappingsio.legacy.LegacyIOFacade.read50Project(LegacyIOFacade.java:14)
at oracle.toplink.workbench.mappingsio.ProjectReader.readLegacyProject(ProjectReader.java:243)
at oracle.toplink.workbench.mappingsio.ProjectReader.read(ProjectReader.java:102)
at oracle.toplink.workbench.mappingsio.ProjectIOManager.read(ProjectIOManager.java:59)
at oracle.toplink.workbench.mappingsplugin.MappingsPlugin.open(MappingsPlugin.java:286)
... 5 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at oracle.toplink.internal.security.PrivilegedAccessController.invokeMethod(PrivilegedAccessController.java:501)
at oracle.toplink.mappings.transformers.MethodBasedAttributeTransformer.buildAttributeValue(MethodBasedAttributeTransformer.java:108)
... 65 more
Caused by: java.lang.ClassCastException: java.lang.String
at oracle.toplink.workbench.mappingsmodel.descriptor.relational.MWDescriptorMultiTableInfoPolicy.legacy50GetSecondaryReferenceHandlesFromRecordForTopLink(MWDescriptorMultiTableInfoPolicy.java:264)
... 70 more -
Toplink Workbench Exceptions â¦â¦.
When I tried to open a Toplink project (project.mwp) generated by Toplink 9.0.3 in the newer version 9.0.4, I got the following errors during the conversion process. What should I do to correct this issue? Many thanks for the help.
Throwable Class Name:
oracle.toplink.exceptions.DescriptorException
Message:
Exception Description: The method [isStub] on the object [oracle.toplink.workbench.model.meta.MWClass] triggered an exception.
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.lang.NullPointerException
Mapping: oracle.toplink.mappings.DirectToFieldMapping[stub-->class.stub]
Descriptor: XMLDescriptor(oracle.toplink.workbench.model.meta.MWClass --> [DatabaseTable(class)])
Stack trace:
Local Exception Stack:
Exception [TOPLINK-99] (OracleAS TopLink - 10g (9.0.4) (Build 031126)): oracle.toplink.exceptions.DescriptorException
Exception Description: The method [isStub] on the object [oracle.toplink.workbench.model.meta.MWClass] triggered an exception.
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.lang.NullPointerException
Mapping: oracle.toplink.mappings.DirectToFieldMapping[stub-->class.stub]
Descriptor: XMLDescriptor(oracle.toplink.workbench.model.meta.MWClass --> [DatabaseTable(class)])
at oracle.toplink.exceptions.DescriptorException.targetInvocationWhileGettingValueThruMethodAccessor(DescriptorException.java:1371)
at oracle.toplink.internal.descriptors.MethodAttributeAccessor.getAttributeValueFromObject(MethodAttributeAccessor.java:47)
at oracle.toplink.mappings.DatabaseMapping.getAttributeValueFromObject(DatabaseMapping.java:304)
at oracle.toplink.mappings.DirectToFieldMapping.buildClone(DirectToFieldMapping.java:61)
at oracle.toplink.internal.descriptors.ObjectBuilder.populateAttributesForClone(ObjectBuilder.java:1493)
at oracle.toplink.publicinterface.UnitOfWork.cloneAndRegisterNewObject(UnitOfWork.java:580)
at oracle.toplink.publicinterface.UnitOfWork.internalRegisterObject(UnitOfWork.java:2261)
at oracle.toplink.publicinterface.UnitOfWork.registerObject(UnitOfWork.java:3093)
at oracle.toplink.mappings.CollectionMapping.buildElementClone(CollectionMapping.java:148)
at oracle.toplink.mappings.CollectionMapping.buildCloneForPartObject(CollectionMapping.java:107)
at oracle.toplink.internal.indirection.NoIndirectionPolicy.cloneAttribute(NoIndirectionPolicy.java:43)
at oracle.toplink.mappings.ForeignReferenceMapping.buildClone(ForeignReferenceMapping.java:160)
at oracle.toplink.internal.descriptors.ObjectBuilder.populateAttributesForClone(ObjectBuilder.java:1493)
at oracle.toplink.mappings.AggregateMapping.buildClonePart(AggregateMapping.java:132)
at oracle.toplink.mappings.AggregateMapping.buildClone(AggregateMapping.java:110)
at oracle.toplink.internal.descriptors.ObjectBuilder.populateAttributesForClone(ObjectBuilder.java:1493)
at oracle.toplink.publicinterface.UnitOfWork.cloneAndRegisterNewObject(UnitOfWork.java:580)
at oracle.toplink.publicinterface.UnitOfWork.internalRegisterObject(UnitOfWork.java:2261)
at oracle.toplink.publicinterface.UnitOfWork.registerObject(UnitOfWork.java:3093)
at oracle.toplink.workbench.ui.WorkbenchSession.registerProject(WorkbenchSession.java:551)
at oracle.toplink.workbench.ui.WorkbenchSession.addProject(WorkbenchSession.java:151)
at oracle.toplink.workbench.ui.WorkbenchSession.addNewProject(WorkbenchSession.java:138)
at oracle.toplink.workbench.ui.MainView.addNewProject(MainView.java:265)
at oracle.toplink.workbench.filesystem.MWFileFactory.openImp(MWFileFactory.java:206)
at oracle.toplink.workbench.filesystem.MWFileFactory.open(MWFileFactory.java:158)
at oracle.toplink.tsceditor.persistence.PersistenceManager.open(PersistenceManager.java:747)
at oracle.toplink.tsceditor.ui.persistence.DefaultUIPersistence.open(DefaultUIPersistence.java:181)
at oracle.toplink.tsceditor.ui.persistence.UIPersistenceManager.open(UIPersistenceManager.java:625)
at oracle.toplink.tsceditor.ui.persistence.UIPersistenceManager$OpenFile.execute(UIPersistenceManager.java:1095)
at oracle.toplink.tsceditor.utility.Thread.run(Thread.java:114)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor107.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at oracle.toplink.internal.descriptors.MethodAttributeAccessor.getAttributeValueFromObject(MethodAttributeAccessor.java:40)
... 28 more
Caused by: java.lang.NullPointerException
at oracle.toplink.workbench.model.meta.MWClass.superclassIsDefaultValue(MWClass.java:1275)
at oracle.toplink.workbench.model.meta.MWClass.isStub(MWClass.java:1236)
... 32 moreoracle.toplink.workbench.framework.OpenException: Exception [TOPLINK-98] (Oracle TopLink - 10g Developer Preview 3 (10.1.3.0 ) (Build 041012)): oracle.toplink.exceptions.DescriptorException
Exception Description: The underlying descriptor callback method [legacy45PostBuild], with parameter (DescriptorEvent), triggered an exception.
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.lang.NullPointerException
Descriptor: XMLDescriptor(oracle.toplink.workbench.mappingsmodel.project.relational.MWRelationalProject --> [DatabaseTable(BldrProject)])
at oracle.toplink.workbench.mappingsplugin.MWPlugin.open(MWPlugin.java:262)
at oracle.toplink.workbench.framework.internal.FrameworkApplication.open(FrameworkApplication.java:605)
at oracle.toplink.workbench.framework.internal.FrameworkNodeManager.openCallback(FrameworkNodeManager.java:325)
at oracle.toplink.workbench.framework.internal.RunnableProjectLoader.run2(RunnableProjectLoader.java:81)
at oracle.toplink.workbench.framework.internal.RunnableProjectLoader.run(RunnableProjectLoader.java:68)
at java.lang.Thread.run(Thread.java:534)
Caused by: Exception [TOPLINK-98] (Oracle TopLink - 10g Developer Preview 3 (10.1.3.0 ) (Build 041012)): oracle.toplink.exceptions.DescriptorException
Exception Description: The underlying descriptor callback method [legacy45PostBuild], with parameter (DescriptorEvent), triggered an exception.
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.lang.NullPointerException
Descriptor: XMLDescriptor(oracle.toplink.workbench.mappingsmodel.project.relational.MWRelationalProject --> [DatabaseTable(BldrProject)])
at oracle.toplink.exceptions.DescriptorException.targetInvocationWhileEventExecution(DescriptorException.java:1598)
at oracle.toplink.publicinterface.DescriptorEventManager.executeEvent(DescriptorEventManager.java:177)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:256)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:504)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:372)
at oracle.toplink.queryframework.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:408)
at oracle.toplink.queryframework.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:372)
at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:727)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:559)
at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:336)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:1977)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:973)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:930)
at oracle.toplink.publicinterface.Session.readObject(Session.java:2429)
at oracle.toplink.workbench.mappingsio.legacy.PersistenceTools45.readMWProjectNamed(PersistenceTools45.java:230)
at oracle.toplink.workbench.mappingsio.legacy.LegacyIOFacade.read45Project(LegacyIOFacade.java:18)
at oracle.toplink.workbench.mappingsio.ProjectReader.readPreviousVersion(ProjectReader.java:97)
at oracle.toplink.workbench.mappingsio.ProjectReader.read(ProjectReader.java:85)
at oracle.toplink.workbench.mappingsio.ProjectIOManager.read(ProjectIOManager.java:48)
at oracle.toplink.workbench.mappingsio.ProjectIOManager.read(ProjectIOManager.java:44)
at oracle.toplink.workbench.mappingsplugin.MWPlugin.open(MWPlugin.java:260)
... 5 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at oracle.toplink.internal.security.PrivilegedAccessController.invokeMethod(PrivilegedAccessController.java:416)
at oracle.toplink.publicinterface.DescriptorEventManager.executeEvent(DescriptorEventManager.java:170)
... 24 more
Caused by: java.lang.NullPointerException
at oracle.toplink.workbench.mappingsmodel.desc.relational.MWRelationalPrimaryKeyPolicy.nodeRemoved(MWRelationalPrimaryKeyPolicy.java:185)
at oracle.toplink.workbench.utility.node.AbstractNodeModel.nodeRemoved(AbstractNodeModel.java:288)
at oracle.toplink.workbench.utility.node.AbstractNodeModel.nodeRemoved(AbstractNodeModel.java:288)
at oracle.toplink.workbench.mappingsmodel.desc.MWMappingDescriptor.nodeRemoved(MWMappingDescriptor.java:1174)
at oracle.toplink.workbench.mappingsmodel.desc.relational.MWTableDescriptor.nodeRemoved(MWTableDescriptor.java:1054)
at oracle.toplink.workbench.utility.node.AbstractNodeModel.nodeRemoved(AbstractNodeModel.java:288)
at oracle.toplink.workbench.mappingsmodel.MWModel.removeNodeFromCollection(MWModel.java:152)
at oracle.toplink.workbench.mappingsmodel.meta.MWClass.removeAttribute(MWClass.java:960)
at oracle.toplink.workbench.mappingsmodel.meta.MWClass.removeAttributes(MWClass.java:969)
at oracle.toplink.workbench.mappingsmodel.meta.MWClass.removeAttributes(MWClass.java:964)
at oracle.toplink.workbench.mappingsmodel.meta.MWClass.clearAttributes(MWClass.java:974)
at oracle.toplink.workbench.mappingsmodel.meta.MWClass.legacyXXReworkCoreType(MWClass.java:3108)
at oracle.toplink.workbench.mappingsmodel.meta.MWClass.legacy45PostPostProjectBuild(MWClass.java:3084)
at oracle.toplink.workbench.mappingsmodel.MWModel.legacy45PostPostProjectBuild(MWModel.java:575)
at oracle.toplink.workbench.mappingsmodel.meta.MWClassRepository.legacy45PostPostProjectBuild(MWClassRepository.java:1271)
at oracle.toplink.workbench.mappingsmodel.MWModel.legacy45PostPostProjectBuild(MWModel.java:575)
at oracle.toplink.workbench.mappingsmodel.project.MWProject.legacy45PostBuild(MWProject.java:1233)
at oracle.toplink.workbench.mappingsmodel.project.relational.MWRelationalProject.legacy45PostBuild(MWRelationalProject.java:651)
... 30 more -
10g: Must all related tables be in the same project?
Since we will eventaully have over 500 tables to map, we would like to be able to maintain these tables/classes in different projects. How do we map foreign key references between tables/classes that we would like to maintain in different projects?
I don't know if theis is why I'm getting this error, but I initially created two projects with independent tables. Then I wanted to join some tables in one project to some tables in another project. (This is all using Offline Database Objects.) I dropped some tables managed in project A into the diagram for project B and created the foreign key relations (from B to A.) Now whenever I try to open the TopLink Mappings node for project B in the Navigator, I get the following error. I get this error even if I drop ALL the tables from project A into project B's diagram (meaning there is nothing left in the schema that could be the missing 'parent'.)
Local Exception Stack:
Exception [TOPLINK-98] (Oracle9iAS TopLink - Release 2 (9.0.4.0) (Build 030612)): oracle.toplink.exceptions.DescriptorException
Exception Description: The underlying descriptor callback method [postBuild], with parameter (DescriptorEvent), triggered an exception.
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.lang.IllegalStateException: This object is missing a parent: MWTable[C14] (AVEGA.DATAMART)
Descriptor: XMLDescriptor(oracle.toplink.workbench.model.MWProject --> [DatabaseTable(project)])
at oracle.toplink.exceptions.DescriptorException.<init>(DescriptorException.java:207)
at oracle.toplink.exceptions.DescriptorException.<init>(DescriptorException.java:212)
at oracle.toplink.exceptions.DescriptorException.targetInvocationWhileEventExecution(DescriptorException.java:1364)
at oracle.toplink.publicinterface.DescriptorEventManager.executeEvent(DescriptorEventManager.java:133)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:179)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:331)
at oracle.toplink.queryframework.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:227)
at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:344)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:498)
at oracle.toplink.queryframework.ReadQuery.execute(ReadQuery.java:111)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:1968)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:1096)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:1048)
at oracle.toplink.publicinterface.Session.readObject(Session.java:2502)
at oracle.toplink.workbench.ui.WorkbenchSession.getMWProjectNamed(WorkbenchSession.java:270)
at oracle.toplink.addin.persistence.MWJDeveloperPersistence.open(MWJDeveloperPersistence.java:176)
at oracle.toplink.tsceditor.persistence.PersistenceManager.open(PersistenceManager.java:942)
at oracle.toplink.addin.manager.MWJDeveloperMediator.openMWProject(MWJDeveloperMediator.java:164)
at oracle.toplink.addin.manager.MWJDeveloperMediator.locateAndOpenProjectImp(MWJDeveloperMediator.java:626)
at oracle.toplink.addin.manager.MWJDeveloperMediator.getEditableObjectFor(MWJDeveloperMediator.java:430)
at oracle.toplink.addin.ui.view.explorer.MWExplorer.updateExplorer(MWExplorer.java:586)
at oracle.toplink.addin.ui.view.explorer.MWExplorer.setContext(MWExplorer.java:458)
at oracle.ideimpl.explorer.ExplorerManagerImpl.getExplorerForHost(ExplorerManagerImpl.java:1048)
at oracle.ideimpl.explorer.ExplorerWindowImpl.viewSelectionChanged(ExplorerWindowImpl.java:544)
at oracle.ide.addin.AbstractPinnable.viewSelectionChanged(AbstractPinnable.java:232)
at oracle.ideimpl.explorer.ExplorerWindowImpl.viewSelectionChanged(ExplorerWindowImpl.java:376)
... etc.If you wish to split your project up into two projects and have some relationships between some of those objects in the projects, you could map all of the objects for each project, but do not map the relationships. For those classes with relationships to other classes in other project you can define an amendment method. An amendment method is a callback into Java code that will be called when the descriptor is loaded. In this method you can then create the mapping to the class in the other project through the descriptor and mapping code API. (see oracle.toplink.mappings, oracle.toplink.publicinterface.Descriptor)
You can also make use of descriptor deactivation to define relationships between projects. For this you would import the related classes into the project and deactivate them. This will allow you to define relationships to them, but will not export their mapping information when deploying.
In general it is probably easier to keep everything in one project and use your content/code management system and merge tools to manage the project. -
JDev 9.0.5.2 Error When Opening TopLink Mapping Project
I was in the middle of mapping my classes and realized that I needed some more attributes. So I added the attributes to my classes, closed the IDE (since this is generally the only way to get the TopLink Mapping Project to notice the changes), and now, when I reopen the IDE, I get the following:
Exception [TOPLINK-98] (OracleAS TopLink - 10g (9.0.4) (Build 031126)): oracle.toplink.exceptions.DescriptorException
Exception Description: The underlying descriptor callback method [postBuild], with parameter (DescriptorEvent), triggered an exception.
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.lang.NullPointerException
Descriptor: XMLDescriptor(oracle.toplink.workbench.model.MWProject --> [DatabaseTable(project)])
at oracle.toplink.exceptions.DescriptorException.targetInvocationWhileEventExecution(DescriptorException.java:1364)
at oracle.toplink.publicinterface.DescriptorEventManager.executeEvent(DescriptorEventManager.java:133)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:179)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:331)
at oracle.toplink.queryframework.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:226)
at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:344)
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:498)
at oracle.toplink.queryframework.ReadQuery.execute(ReadQuery.java:111)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:1968)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:1096)
at oracle.toplink.publicinterface.Session.executeQuery(Session.java:1048)
at oracle.toplink.publicinterface.Session.readObject(Session.java:2502)
at oracle.toplink.workbench.ui.WorkbenchSession.getMWProjectNamed(WorkbenchSession.java:270)
at oracle.toplink.addin.persistence.MWJDeveloperPersistence.open(MWJDeveloperPersistence.java:200)
at oracle.toplink.tsceditor.persistence.PersistenceManager.open(PersistenceManager.java:942)
at oracle.toplink.addin.manager.MWJDeveloperMediator.openMWProject(MWJDeveloperMediator.java:167)
at oracle.toplink.addin.manager.MWJDeveloperMediator.locateAndOpenProjectImp(MWJDeveloperMediator.java:691)
at oracle.toplink.addin.manager.MWJDeveloperMediator.locateAndOpenProject(MWJDeveloperMediator.java:665)
at oracle.toplink.addin.manager.MWJDeveloperMediator.getMWProjectAndOpenIfNecessary(MWJDeveloperMediator.java:1098)
at oracle.toplink.addin.manager.MWJDeveloperMediator.getMWProjectAndOpenIfNecessary(MWJDeveloperMediator.java:1070)
at oracle.toplink.addin.appnav.JProjectObserver.handleObjectOpened(JProjectObserver.java:115)
at oracle.toplink.addin.appnav.JProjectObserver.update(JProjectObserver.java:65)
at oracle.ide.IdeSubject.notifyObservers(IdeSubject.java:215)
at oracle.ide.model.DefaultDocument.notifyObservers(DefaultDocument.java:273)
at oracle.ide.addin.UpdateMessage.fireObjectOpened(UpdateMessage.java:543)
at oracle.ide.model.DataNode.fireObjectOpened(DataNode.java:191)
at oracle.ide.model.DataNode$1.run(DataNode.java:168)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at oracle.toplink.publicinterface.DescriptorEventManager.executeEvent(DescriptorEventManager.java:125)
... 32 more
Caused by: java.lang.NullPointerException
at oracle.toplink.workbench.model.desc.MWMappingDescriptor.classHierarchyChangedFor(MWMappingDescriptor.java:758)
at oracle.toplink.workbench.model.MWProject.classHierarchyChangedFor(MWProject.java:1086)
at oracle.toplink.workbench.model.meta.MWClass.setSuperclass(MWClass.java:877)
at oracle.toplink.workbench.model.meta.MWClass.setInterface(MWClass.java:837)
at oracle.toplink.workbench.model.meta.MWClass.resetStubInterface(MWClass.java:2398)
at oracle.toplink.workbench.model.meta.MWClass.resetStubInterfaces(MWClass.java:2386)
at oracle.toplink.workbench.model.meta.MWClassRepository.resetStubInterfaces(MWClassRepository.java:1385)
at oracle.toplink.workbench.model.meta.MWClassRepository.postProjectBuild(MWClassRepository.java:1380)
at oracle.toplink.workbench.model.MWModelObject.postProjectBuild(MWModelObject.java:522)
at oracle.toplink.workbench.model.MWProject.postBuild(MWProject.java:1646)
... 37 moreIn the IDE I get a much shorter version of the excpetion, the above is what I see on the commandline from which the IDE was launched.
I can no longer work on my mappings project at all.John,
You mentioned "I closed the IDE so that the TopLink project would pick up the changes..."
1. We need to find out why you needed to close the IDE? Was TopLink mapping editor not picking up your changes?
2. I am sure you did not modified .java outside of Jdev, but in case if you did, let me know.
3. After removing a superclass attribute, did you save all changes?
4. We tried various combinations, but were unable to reproduce the project reopen issue that you mentioned was fixed by changing the ClassDescriptor.xml. It would be extremely helpful if you could either send us (anuj dot k dot jain at oracle dot com) a project that can reproduce this issue, or outline the exact steps. -
Toplink + Websphere : java.sql.SQLException: DSRA9420E:
Hello,
I 'm getting this exception on a Websphere environment using Toplink to access data base. I'm getting the connection from the database using a data source configured in the application server.
Any help is welcome ...
java.sql.SQLException: DSRA9420E: Connection cannot be reassociated because child objects are still open., error code: CHILDREN_STILL_OPEN
Caused by: java.sql.SQLException: DSRA9420E: Connection cannot be reassociated because child objects are still open., error code: CHILDREN_STILL_OPEN
at com.ibm.ws.rsadapter.AdapterUtil.toSQLException(AdapterUtil.java(Compiled Code))
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.reactivate(WSJdbcConnection.java(Compiled Code))
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java(Compiled Code))
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java(Compiled Code))
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java(Compiled Code))
at oracle.toplink.queryframework.SQLCall.prepareStatement(SQLCall.java(Compiled Code))
... 60 more
Caused by: com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException: DSRA9420E: Connection cannot be reassociated because child objects are still open., error code: CHILDREN_STILL_OPEN
at com.ibm.ws.rsadapter.AdapterUtil.createDataStoreAdapterException(AdapterUtil.java(Compiled Code))
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.reassociate(WSJdbcConnection.java(Compiled Code))
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.associateConnection(WSRdbManagedConnectionImpl.java(Compiled Code))
at com.ibm.ejs.j2c.MCWrapper.associateConnection(MCWrapper.java(Compiled Code))
at com.ibm.ejs.j2c.ConnectionManager.reassociateConnectionHandle(ConnectionManager.java(Compiled Code))
at com.ibm.ejs.j2c.ConnectionManager.associateConnection(ConnectionManager.java(Compiled Code))
at com.ibm.ejs.j2c.ConnectionManager.associateConnection(ConnectionManager.java(Compiled Code))you mean the WAS configuration for the data source ?
toplink is configured so as to use the WAS datasource, and use external pooling.
here is the complete stack trace :
Caused by: Exception [TOPLINK-4002] (OracleAS TopLink - 10g (9.0.4.9) (Build 060118)): oracle.toplink.exceptions.DatabaseException
Description de l'exception : java.sql.SQLException: DSRA9420E: Connection cannot be reassociated because child objects are still open., error code: CHILDREN_STILL_OPEN
Exception interne : java.sql.SQLException: DSRA9420E: Connection cannot be reassociated because child objects are still open., error code: CHILDREN_STILL_OPEN
Code d'erreur : 0
at oracle.toplink.exceptions.DatabaseException.sqlException(DatabaseException.java(Compiled Code))
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java(Compiled Code))
at oracle.toplink.threetier.ServerSession.executeCall(ServerSession.java(Compiled Code))
at oracle.toplink.internal.queryframework.CallQueryMechanism.executeCall(CallQueryMechanism.java(Compiled Code))
at oracle.toplink.internal.queryframework.CallQueryMechanism.executeCall(CallQueryMechanism.java(Inlined Compiled Code))
at oracle.toplink.internal.queryframework.CallQueryMechanism.selectOneRow(CallQueryMechanism.java(Compiled Code))
at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.selectOneRowFromTable(ExpressionQueryMechanism.java(Inlined Compiled Code))
at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.selectOneRow(ExpressionQueryMechanism.java(Compiled Code))
at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java(Compiled Code))
at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java(Compiled Code))
at oracle.toplink.queryframework.ReadQuery.execute(ReadQuery.java(Compiled Code))
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java(Inlined Compiled Code))
at oracle.toplink.threetier.ServerSession.internalExecuteQuery(ServerSession.java(Inlined Compiled Code))
at oracle.toplink.threetier.ClientSession.internalExecuteQuery(ClientSession.java(Compiled Code))
at oracle.toplink.publicinterface.Session.executeQuery(Session.java(Compiled Code))
at oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(UnitOfWork.java(Compiled Code))
at oracle.toplink.publicinterface.Session.executeQuery(Session.java(Compiled Code))
at oracle.toplink.publicinterface.Session.executeQuery(Session.java(Inlined Compiled Code))
at oracle.toplink.publicinterface.Session.readObject(Session.java(Compiled Code))
... 25 more
Caused by: java.sql.SQLException: DSRA9420E: Connection cannot be reassociated because child objects are still open., error code: CHILDREN_STILL_OPEN
at com.ibm.ws.rsadapter.AdapterUtil.toSQLException(AdapterUtil.java(Compiled Code))
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.reactivate(WSJdbcConnection.java(Compiled Code))
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java(Compiled Code))
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java(Compiled Code))
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java(Compiled Code))
at oracle.toplink.queryframework.SQLCall.prepareStatement(SQLCall.java(Compiled Code))
... 45 more
Caused by: com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException: DSRA9420E: Connection cannot be reassociated because child objects are still open., error code: CHILDREN_STILL_OPEN
at com.ibm.ws.rsadapter.AdapterUtil.createDataStoreAdapterException(AdapterUtil.java(Compiled Code))
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.reassociate(WSJdbcConnection.java(Compiled Code))
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.associateConnection(WSRdbManagedConnectionImpl.java(Compiled Code))
at com.ibm.ejs.j2c.MCWrapper.associateConnection(MCWrapper.java(Compiled Code))
at com.ibm.ejs.j2c.ConnectionManager.reassociateConnectionHandle(ConnectionManager.java(Compiled Code))
at com.ibm.ejs.j2c.ConnectionManager.associateConnection(ConnectionManager.java(Compiled Code))
at com.ibm.ejs.j2c.ConnectionManager.associateConnection(ConnectionManager.java(Compiled Code))
... 50 more -
EXCEPTION [TOPLINK-116]
Can anybody help me with the following error, what does it mean:
2007-07-12 16:45:45,813 [ContentScheduler_Worker-2] ERROR (com.jcatalog.scheduling.quartz.Executer) - Unexpected error during execution of Job
LOCAL EXCEPTION STACK:
EXCEPTION [TOPLINK-116] (v2.5.1 GA May 11 2000): TOPLink.Public.Exceptions.DescriptorException
EXCEPTION DESCRIPTION: No conversion value provided for the field ' '
at TOPLink.Public.Exceptions.DescriptorException.noFieldValueConversionToAttributeValueProvided(DescriptorException.java:735)
at TOPLink.Public.Mappings.ObjectTypeMapping.getAttributeValue(ObjectTypeMapping.java:96)
at TOPLink.Public.Mappings.DirectToFieldMapping.valueFromRow(DirectToFieldMapping.java:327)
at TOPLink.Public.Mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:721)
at TOPLink.Private.Descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:195)
at TOPLink.Private.Descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:295)
at TOPLink.Public.QueryFramework.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:170)
at TOPLink.Public.QueryFramework.ReadObjectQuery.execute(ReadObjectQuery.java:267)
at TOPLink.Public.QueryFramework.DatabaseQuery.execute(DatabaseQuery.java:363)
at TOPLink.Public.QueryFramework.ReadQuery.execute(ReadQuery.java:95)
at TOPLink.Public.PublicInterface.Session.internalExecuteQuery(Session.java:1342)
at TOPLink.Public.ThreeTier.ServerSession.internalExecuteQuery(ServerSession.java:441)
at TOPLink.Public.ThreeTier.ClientSession.internalExecuteQuery(ClientSession.java:255)
at TOPLink.Public.PublicInterface.Session.executeQuery(Session.java:828)
at TOPLink.Public.PublicInterface.Session.executeQuery(Session.java:785)
at TOPLink.Public.PublicInterface.Session.readObject(Session.java:1694)
at com.jcatalog.toplinkmapping.ObjProperty.findByPrimaryKey(ObjProperty.java:144)
at com.jcatalog.rbe.customized.RBECustomExaminations.leverstatusFrsNo(RBECustomExaminations.java:2492)
at com.jcatalog.rbe.customized.RBECustomExaminations.execute(RBECustomExaminations.java:391)
at com.jcatalog.rbe.customized.RBECustomRuleExecutor.execute(RBECustomRuleExecutor.java:185)
at com.jcatalog.rbe.RBERuleExecutor.execute(RBERuleExecutor.java:1815)
at com.jcatalog.rbe.RBEJobWorker.execute(RBEJobWorker.java:54)
at com.jcatalog.scheduling.quartz.Executer.execute(Executer.java:43)
at org.quartz.core.JobRunShell.run(JobRunShell.java:178)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:487)You have setup an Object Type Mapping or a direct to field mapping with an object-type converter. In this converter you specify a map of database to object values. At runtime your application is finding a value, empty string, which is not supported by your conversion map.
Doug -
I am using several ways to build queries :
mySession.readObject
mySession.readAllObjects
mySession.executeQuery
and classes ReadObjectQuery, readAllQuery and readQuery
What are the differences between all this classes and methods ???
I also used queries "after load". How can i configure the
cache to optimize these queries without using the workbench ??
Is it recommended to use queries "after load" ??
How can i optimize queries (for the cache) ?
ThanksThe session.readObject and session.readAllObjects are simply helper methods that actually instantiate the appropriate query object (ReadObjectQuery or ReadAllQuery) and execute them using session.executeQuery. They all end up doing the same thing. Using the query objects will give you far more flexibility to tune the query's execution for performance and cache usage.
I would recommend using the after-load approach to configuring all static parameratized queries and registering them by name with the descriptor's query manager. You can then execute them in the application using sessions.executeQuery("query name", MyClass.class, ...). This will allow you to isolate the queries so they can be more easily managed and tuned.
Doug -
Attetion Darren Melanson Unit Of Work
Hello,
Again sorry about my english.
I read in one article published in otn.com about Unit Of Work the next example:
UnitOfWork uow = session.acquireUnitOfWork();
PetOwner existingPetOwnerClone =
(PetOwner)uow.readObject(PetOwner.class);
Pet newPet = new Pet();
Pet newPetClone = (Pet)uow.registerObject(newPet);
newPetClone.setId(900);
newPetClone.setType("Lizzard");
newPetClone.setName("Larry");
newPetClone.setPetOwner(existingPetOwnerClone);
uow.commit();
my question is: If I don't modify petOwner, why these example read this object throught up ouw, Is really necesary read it throught up uow???
Or Can I read petOwner with ReadObjectQuery, and the rest of the work do it with uow. for example:
PetOwner petOwner = (PetOwner)session.readObject(PetOwner.class);
UnitOfWork uow = session.acquireUnitOfWork();
Pet newPet = new Pet();
Pet newPetClone = (Pet)uow.registerObject(newPet);
newPetClone.setId(900);
newPetClone.setType("Lizzard");
newPetClone.setName("Larry");
newPetClone.setPetOwner(PetOwner);
uow.commit();
Is same?? Is good this manner??To make your code work you would need to tell the UnitOfWork that the PetOwner is read only.
PetOwner petOwner = (PetOwner)session.readObject(PetOwner.class);
UnitOfWork uow = session.acquireUnitOfWork();
// *** Add PetOwner class as read-only.
uow.addReadOnlyClass(PetOwner.class);
Pet newPet = new Pet();
Pet newPetClone = (Pet)uow.registerObject(newPet);
newPetClone.setId(900);
newPetClone.setType("Lizzard");
newPetClone.setName("Larry");
newPetClone.setPetOwner(PetOwner);
uow.commit();
Maybe you are looking for
-
I am using OWB to read data from a bunch of oracle tables and putting the results in a flat file. I've defined is as a tab delimited file and everything works fine except for one thing. What I need is to include double quotes for only those fields th
-
hi i just upgraded to tiger, about a week ago. and i have a little bit of a problem,or i hope its not a problem. everything seems fine with repair permissions, but i noticed when i used macaroni the other day that i had the message ./users/shared/sc
-
Sample Size Calculation in Quality Management
Dear QM Experts, We are facing an issue in sample size calculation when the Inspection Lot Quantity is less than 1 Kg Lets Say for Ex: 0.5 Kg. We are using MICs inside the Plan with suitable Sampling Procedure. The Sampling Procedure has the Followin
-
Vendor Full Name on Check Register report
Hi Was anybody successful to put instead the Vendor Code the Vendor Name on the Check Register Report. Vendor Code Variable is 107 - is there a veriable for Vendor Name?\ Thanks
-
Can I REMOVE iWeb from my System?
I recently upgraded to iLife '08. I am losing disk space and I would like to totally remove iWeb since I don't have a .Mac account and have no need for iWeb. 1) Can I do that? 2) How do I do that? Thank you for your help.