Skip to Main Content

Integration

Announcement

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

NullPointerException (SpringsTopLink) while Inserting New Object in table

790709Aug 11 2010 — edited Aug 12 2010
Hi,
Toplink version 11G/ Springs Version 2.5 (Springs jar built with 11G toplink jar using springs project source).
I am getting error while inserting new records in HSQLDB.
Framework i am using is DAO with toplink-mappings.xml. when i insert it searches seq maintained in SEQUENCE table. but i want it to use DB Sequence.
Tables created are with IDENTITY sequence. Please find below toplink xml/insert code snippet and error trace.

CREATE MEMORY TABLE USER(USER_ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,USER_NAME VARCHAR(64),PASSWORD VARCHAR(64),STATUS VARCHAR(32),TRY_COUNT BIGINT,MAX_TRY BIGINT,CONSTRAINT SYS_CT_49 UNIQUE(USER_NAME))

TOPLINK-MAPPING.xml
===============
<?xml version="1.0" encoding="UTF-8"?>
<toplink:object-persistence
version="Oracle TopLink - 10g Release 3 (10.1.3.0.0) (Build 060118)"
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>TopLinkSpringPU</opm:name>
<opm:class-mapping-descriptors>
<opm:class-mapping-descriptor
xsi:type="toplink:relational-class-mapping-descriptor">
<opm:class>com.sampleproject.minerva.entity.User</opm:class>
<opm:alias>User</opm:alias>
<opm:primary-key>
<opm:field table="USER" name="USER_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>userName</opm:attribute-name>
<opm:field table="USER" name="USER_NAME" xsi:type="opm:column" />
</opm:attribute-mapping>
<opm:attribute-mapping xsi:type="toplink:direct-mapping">
<opm:attribute-name>password</opm:attribute-name>
<opm:field table="USER" name="PASSWORD" xsi:type="opm:column" />
</opm:attribute-mapping>
<opm:attribute-mapping xsi:type="toplink:direct-mapping">
<opm:attribute-name>status</opm:attribute-name>
<opm:field table="USER" name="STATUS" xsi:type="opm:column" />
</opm:attribute-mapping>
<opm:attribute-mapping xsi:type="toplink:direct-mapping">
<opm:attribute-name>userId</opm:attribute-name>
<opm:field table="USER" name="USER_ID" xsi:type="opm:column" />
</opm:attribute-mapping>
<opm:attribute-mapping xsi:type="toplink:direct-mapping">
<opm:attribute-name>tryCount</opm:attribute-name>
<opm:field table="USER" name="TRY_COUNT" xsi:type="opm:column" />
</opm:attribute-mapping>
<opm:attribute-mapping xsi:type="toplink:direct-mapping">
<opm:attribute-name>maxTries</opm:attribute-name>
<opm:field table="USER" name="MAX_TRY" xsi:type="opm:column" />
</opm:attribute-mapping>
</opm:attribute-mappings>
<toplink:descriptor-type>independent</toplink:descriptor-type>
<toplink:sequencing>
<toplink:sequence-name>SEQ</toplink:sequence-name>
<toplink:sequence-field table="USER" name="USER_ID"
xsi:type="opm:column" />
</toplink:sequencing>
<toplink:instantiation />
<toplink:copying xsi:type="toplink:instantiation-copy-policy" />
<toplink:change-policy xsi:type="toplink:deferred-detection-change-policy" />
<toplink:tables>
<toplink:table name="USER" />
</toplink:tables>
</opm:class-mapping-descriptor>
</opm:class-mapping-descriptors>
<toplink:login xsi:type="toplink:database-login">
<toplink:platform-class>com.sampleproject.minerva.web.HSQLPlatformWithNativeSequence
</toplink:platform-class>
<toplink:sequencing>
<toplink:default-sequence xsi:type="toplink:native-sequence" />
</toplink:sequencing>
</toplink:login>
</toplink:object-persistence>


Code Snippet.
========
public void createUser(User user) throws DataAccessException {
getTopLinkTemplate().deepMerge(user);
}

Error :
====
[TopLink Finer]: 2010.08.11 12:00:14.240--UnitOfWork(10357881)--Thread(Thread[http-8080-exec-9,5,main])--begin unit of work commit
[TopLink Warning]: 2010.08.11 12:00:14.240--UnitOfWork(10357881)--Thread(Thread[http-8080-exec-9,5,main])--java.lang.NullPointerException
at oracle.toplink.sequencing.QuerySequence.createArguments(QuerySequence.java:329)
at oracle.toplink.sequencing.QuerySequence.select(QuerySequence.java:285)
at oracle.toplink.sequencing.QuerySequence.updateAndSelectSequence(QuerySequence.java:235)
at oracle.toplink.sequencing.StandardSequence.getGeneratedVector(StandardSequence.java:62)
at oracle.toplink.sequencing.DefaultSequence.getGeneratedVector(DefaultSequence.java:144)
at oracle.toplink.sequencing.Sequence.getGeneratedVector(Sequence.java:256)
at oracle.toplink.internal.sequencing.SequencingManager$Preallocation_NoTransaction_State.getNextValue(SequencingManager.java:585)
at oracle.toplink.internal.sequencing.SequencingManager.getNextValue(SequencingManager.java:873)
at oracle.toplink.internal.sequencing.ClientSessionSequencing.getNextValue(ClientSessionSequencing.java:75)
at oracle.toplink.internal.descriptors.ObjectBuilder.assignSequenceNumber(ObjectBuilder.java:235)
at oracle.toplink.internal.sessions.UnitOfWorkImpl.assignSequenceNumbers(UnitOfWorkImpl.java:419)
at oracle.toplink.internal.sessions.UnitOfWorkImpl.calculateChanges(UnitOfWorkImpl.java:497)
at oracle.toplink.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1407)
at oracle.toplink.internal.sessions.UnitOfWorkImpl.commitRootUnitOfWork(UnitOfWorkImpl.java:1167)
at oracle.toplink.internal.sessions.UnitOfWorkImpl.commit(UnitOfWorkImpl.java:939)
at org.springframework.orm.toplink.UnitOfWorkCallback.doInTopLink(UnitOfWorkCallback.java:57)
at org.springframework.orm.toplink.TopLinkTemplate.execute(TopLinkTemplate.java:141)
at org.springframework.orm.toplink.TopLinkTemplate.deepMerge(TopLinkTemplate.java:475)
at com.sampleproject.minerva.dao.UserDaoImpl.createUser(UserDaoImpl.java:38)
at com.sampleproject.minerva.biz.UserServiceImpl.createUser(UserServiceImpl.java:48)
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:597)
Regards,
RohitJ.
rohit.v.jadhav@accenture.com
+91-9096557574
+91-8097292695
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Sep 9 2010
Added on Aug 11 2010
2 comments
993 views