Hello all
I am trying to pass isolation level hints using query hints and
through JDBCFetchPlan (as explained in openJPA-182). I am unable to
see any isolation level hints appended to query.

Following is my test table

CREATE TABLE TEST11(
    ID BIGINT NOT NULL,
    prop1 VARCHAR(64),
    prop2 VARCHAR(64),
    CONSTRAINT TEST11_PK PRIMARY KEY(ID)
)!

And I am using this code (I tried whatever is commented also). However
what I see in SQL trace is

SELECT t0.id, t0.prop1, t0.prop2 FROM TEST11 t0 ORDER BY t0.id ASC

Any idea what I could be missing? Do I require any special setting in
persistence.xml for supplying hints?


Thanks

- rajeev


/*  ================================================================

public static void testPlanIsolation() throws Exception{
                EntityManager em = JPAUtil.getEntityManager();
                JPAUtil.beginTransaction();
                String jql = " select test from Test11 test order by test.id   
";
                Query q = em.createQuery(jql);
                JDBCFetchPlan plan = (JDBCFetchPlan) ((OpenJPAQuery) 
q).getFetchPlan();
                plan.setIsolation(IsolationLevel.SERIALIZABLE);
                plan.setReadLockMode(LockModeType.WRITE); // force a FOR UPDATE
                
                List list = q.getResultList();
                Test11 pojo ;
                
                for(int i = 0 ; i < list.size(); i++) {
                        pojo = (Test11) list.get(i);
                        //System.out.println(pojo);
                        
                }
                
        }
        
        
        public static void testHintIsolation() throws Exception{
                EntityManager em = JPAUtil.getEntityManager();
                JPAUtil.beginTransaction();
                
                String jql = " select test from Test11 test order by test.id   
";
                OpenJPAQuery q = (OpenJPAQuery) em.createQuery(jql);
                //q.setHint("openjpa.hint.updateClause",true);
                //q.setHint("openjpa.hint.isolationLevel", "serializable");
                
                //q.setHint("openjpa.FetchPlan.Isolation", "READ_UNCOMMITTED" );
                //q.setHint("openjpa.FetchPlan.ReadLockMode", 
LockModeType.READ);
                
                q.setHint("openjpa.hint.updateClause",true);
                q.setHint("openjpa.hint.isolationLevel", "read-uncommitted");
                //q.setHint("openjpa.hint.isolationLevel", "serializable");
                System.out.println(q.getQueryString());
                
                
                List list = q.getResultList();
                Test11 pojo ;
                
                for(int i = 0 ; i < list.size(); i++) {
                        pojo = (Test11) list.get(i);
                        //System.out.println(pojo);
                        
                }
                
        }

=================================================================== */

Reply via email to