I second that. Here is the class: https://github.com/apache/cayenne/blob/master/cayenne-server/src/main/java/org/apache/cayenne/configuration/web/StatelessContextRequestHandler.java#L52
Andrus > On Sep 12, 2015, at 8:52 AM, John Huss <johnth...@gmail.com> wrote: > > You can just copy StatelessContextRequestHandler. It's small and simple. > On Sat, Sep 12, 2015 at 7:48 AM Dipesh Jain <dip...@ivgroup.in> wrote: > >> Thanks @Andrus for the help. I am using CayenneFilter session-scoped >> context, >> because of that I was having problem. I saw your solution but I am using >> cayenne 3.1 and it does not have StatelessContextRequestHandler class. My >> entire project is based on Web Services so is there any other way I >> can use request-scoped >> context with connection pooling or do you have any other alternative better >> then this ? >> >> On Fri, Sep 11, 2015 at 7:46 PM, Dipesh Jain <dip...@ivgroup.in> wrote: >> >>> I have tried to implement @Aristedes Maniatis answer but still result was >>> same. I want to know why and how apache cayenne is doing this. I do not >>> want the solution because I already have the answer. >>> >>> On Wed, Sep 9, 2015 at 9:41 PM, Dipesh Jain <dip...@ivgroup.in> wrote: >>> >>>> I have written a code in java 8 to insert data in sql server 2012 using >>>> apache cayenne 3.1. While executing code I got an exception : >>>> **org.apache.cayenne.CayenneRuntimeException: [v.3.1 Sep 20 2014 >> 14:24:57] >>>> Commit Exception Caused by: java.sql.SQLException: Could not find stored >>>> procedure 'auto_pk_for_table'**. >>>> >>>> I have solved the problem by changing my pk generation strategy in >>>> cayenne modeler from default to database generated. But when I executed >> my >>>> java code again, it was suppose to insert only 1 record in database but >> it >>>> also inserted previous record which I got in exception. I have tried >>>> creating the same scenario thrice but I got the same result. I also >> tried >>>> restarting my web server and SQL server service after getting an >> exception, >>>> but at the time of inserting new data exceptional record was also been >>>> inserted at the same time. >>>> This Problem is also solved by inserting a rollback statement in my >> catch >>>> block. >>>> >>>> But I want to know that how and why is apache cayenne inserting >>>> exceptional data at the time of inserting new data. >>>> >>>> This is my code. >>>> **Java :** >>>> PersonDao >>>> >>>> try { >>>> Person person = new Person(); >>>> person.setFirstName("John"); >>>> person.setLastName("Cross"); >>>> ObjectContext context = BaseContext.getThreadObjectContext(); >>>> context.registerNewObject(person); >>>> context.commitChanges(); >>>> } catch (CayenneRuntimeException e) { >>>> context.rollbackChanges(); >>>> throw e; >>>> } >>>> >>>> **XML files :** >>>> cayenne-test.xml >>>> >>>> <?xml version="1.0" encoding="utf-8"?> >>>> <domain project-version="6"> >>>> <property name="cayenne.DataDomain.usingExternalTransactions" >>>> value="true"/> >>>> <map name="MastersDataMap"/> >>>> <node name="MastersDataNode" >>>> >> factory="org.apache.cayenne.configuration.server.XMLPoolingDataSourceFactory" >>>> >> schema-update-strategy="org.apache.cayenne.access.dbsync.CreateIfNoSchemaStrategy"> >>>> <map-ref name="MastersDataMap"/> >>>> <data-source> >>>> <driver value="net.sourceforge.jtds.jdbc.Driver"/> >>>> <url value="jdbc:jtds:sqlserver://localhost:1433/test"/> >>>> <connectionPool min="1" max="30"/> >>>> <login userName="sa" password="admin@123"/> >>>> </data-source> >>>> </node> >>>> </domain> >>>> >>>> TestDataMap.map.xml >>>> >>>> <?xml version="1.0" encoding="utf-8"?> >>>> <data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap" >>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>> xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap >>>> http://cayenne.apache.org/schema/3.0/modelMap.xsd" >>>> project-version="6"> >>>> <property name="defaultPackage" value="com.org.ivcargo.platform.dto"/> >>>> <db-entity name="PersonTemp" schema="dbo" catalog="test"> >>>> <db-attribute name="personId" type="NUMERIC" isPrimaryKey="true" >>>> isGenerated="true" isMandatory="true" length="10"/> >>>> <db-attribute name="firstname" type="VARCHAR" length="100"/> >>>> <db-attribute name="lastname" type="VARCHAR" length="100"/> >>>> </db-entity> >>>> <obj-entity name="PersonTemp" >>>> className="com.org.ivcargo.platform.dto.PersonTemp" >>>> dbEntityName="PersonTemp"> >>>> <obj-attribute name="personId" type="java.lang.Long" lock="true" >>>> db-attribute-path="personId"/> >>>> <obj-attribute name="firstname" type="java.lang.String" >>>> db-attribute-path="firstname"/> >>>> <obj-attribute name="lastname" type="java.lang.String" >>>> db-attribute-path="lastname"/> >>>> </obj-entity> >>>> </data-map> >>>> >>>> -- >>>> Thanks and Regards >>>> Deepesh Jain >>>> >>> >>> >>> >>> -- >>> Thanks and Regards >>> Deepesh Jain >>> >> >> >> >> -- >> Thanks and Regards >> Deepesh Jain >>