com.force.sdk.jpa
Class ForceEntityManager

java.lang.Object
  extended by org.datanucleus.jpa.EntityManagerImpl
      extended by com.force.sdk.jpa.ForceEntityManager
All Implemented Interfaces:
javax.persistence.EntityManager

public class ForceEntityManager
extends org.datanucleus.jpa.EntityManagerImpl

This is the main EntityManager for the Force.com JPA implementation. Persist, find, etc. calls go through here. This class is what defines native queries as using the SOQL language

Author:
Fiaz Hossain

Field Summary
 
Fields inherited from class org.datanucleus.jpa.EntityManagerImpl
emf, fetchPlan, flushMode, LOCALISER, om, persistenceContextType, pm, tx
 
Constructor Summary
ForceEntityManager(javax.persistence.EntityManagerFactory emf, javax.jdo.PersistenceManagerFactory pmf, javax.persistence.PersistenceContextType contextType)
          Construct an entity manager for persisting objects to Force.com.
 
Method Summary
 void clear()
           
 void close()
           
 javax.persistence.Query createNativeQuery(String soqlString, Class resultClass)
          Create an instance of Query for executing an SOQL query.
 javax.persistence.Query createNativeQuery(String soqlString, String resultSetMapping)
          Create an instance of Query for executing an SOQL query.
 void detach(Object entity)
           
<T> T
find(Class<T> entityClass, Object primaryKey, javax.persistence.LockModeType lock, Map<String,Object> properties)
           
 void flush()
           
 Object getReference(Class entityClass, Object primaryKey)
           
 void injectStateManagerIntoTransient(javax.jdo.spi.PersistenceCapable pc)
          Method added to allow a StateManager to be injected into a transient object so that we can track which fields have been touched.
 void joinTransaction()
          This method is over-ridden from the base class to implement our own ForceTransactionImpl.
 void lock(Object entity, javax.persistence.LockModeType lock, Map<String,Object> properties)
           
 Object merge(Object entity)
           
 void persist(Object entity)
           
 void refresh(Object entity, javax.persistence.LockModeType lock, Map<String,Object> properties)
           
 void remove(Object entity)
           
 
Methods inherited from class org.datanucleus.jpa.EntityManagerImpl
contains, createNamedQuery, createNamedQuery, createNativeQuery, createQuery, createQuery, createQuery, find, find, find, getCriteriaBuilder, getDelegate, getEntityManagerFactory, getFetchPlan, getFlushMode, getJPALockModeTypeForLockType, getLockMode, getLockTypeForJPALockModeType, getMetamodel, getProperties, getSupportedProperties, getTransaction, isOpen, lock, refresh, refresh, refresh, setFlushMode, setProperty, unwrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ForceEntityManager

public ForceEntityManager(javax.persistence.EntityManagerFactory emf,
                          javax.jdo.PersistenceManagerFactory pmf,
                          javax.persistence.PersistenceContextType contextType)
Construct an entity manager for persisting objects to Force.com.

Parameters:
emf - the entity manager factory creating this entity manager
pmf - the persistence manager factory that will create the persistence manager
contextType - the persistence context type for this application
Method Detail

joinTransaction

public void joinTransaction()
This method is over-ridden from the base class to implement our own ForceTransactionImpl.

Specified by:
joinTransaction in interface javax.persistence.EntityManager
Overrides:
joinTransaction in class org.datanucleus.jpa.EntityManagerImpl

close

public void close()
Specified by:
close in interface javax.persistence.EntityManager
Overrides:
close in class org.datanucleus.jpa.EntityManagerImpl

clear

public void clear()
Specified by:
clear in interface javax.persistence.EntityManager
Overrides:
clear in class org.datanucleus.jpa.EntityManagerImpl

injectStateManagerIntoTransient

public void injectStateManagerIntoTransient(javax.jdo.spi.PersistenceCapable pc)
Method added to allow a StateManager to be injected into a transient object so that we can track which fields have been touched. Then if the user calls merge() on that transient object we can copy the fields over to a detached object and call merge on it. If the user called persist instead we simply toss this injected StateManager and proceed as usual.

Parameters:
pc - PersistenceCapable

createNativeQuery

public javax.persistence.Query createNativeQuery(String soqlString,
                                                 Class resultClass)
Create an instance of Query for executing an SOQL query.

Specified by:
createNativeQuery in interface javax.persistence.EntityManager
Overrides:
createNativeQuery in class org.datanucleus.jpa.EntityManagerImpl
Parameters:
soqlString - a native SOQL query string
resultClass - the class of the resulting instance(s)
Returns:
the new query instance

createNativeQuery

public javax.persistence.Query createNativeQuery(String soqlString,
                                                 String resultSetMapping)
Create an instance of Query for executing an SOQL query.

Specified by:
createNativeQuery in interface javax.persistence.EntityManager
Overrides:
createNativeQuery in class org.datanucleus.jpa.EntityManagerImpl
Parameters:
soqlString - a native SOQL query string
resultSetMapping - the name of the result set mapping
Returns:
the new query instance

persist

public void persist(Object entity)
Specified by:
persist in interface javax.persistence.EntityManager
Overrides:
persist in class org.datanucleus.jpa.EntityManagerImpl

merge

public Object merge(Object entity)
Specified by:
merge in interface javax.persistence.EntityManager
Overrides:
merge in class org.datanucleus.jpa.EntityManagerImpl

remove

public void remove(Object entity)
Specified by:
remove in interface javax.persistence.EntityManager
Overrides:
remove in class org.datanucleus.jpa.EntityManagerImpl

find

public <T> T find(Class<T> entityClass,
                  Object primaryKey,
                  javax.persistence.LockModeType lock,
                  Map<String,Object> properties)
Specified by:
find in interface javax.persistence.EntityManager
Overrides:
find in class org.datanucleus.jpa.EntityManagerImpl

getReference

public Object getReference(Class entityClass,
                           Object primaryKey)
Specified by:
getReference in interface javax.persistence.EntityManager
Overrides:
getReference in class org.datanucleus.jpa.EntityManagerImpl

refresh

public void refresh(Object entity,
                    javax.persistence.LockModeType lock,
                    Map<String,Object> properties)
Specified by:
refresh in interface javax.persistence.EntityManager
Overrides:
refresh in class org.datanucleus.jpa.EntityManagerImpl

flush

public void flush()
Specified by:
flush in interface javax.persistence.EntityManager
Overrides:
flush in class org.datanucleus.jpa.EntityManagerImpl

lock

public void lock(Object entity,
                 javax.persistence.LockModeType lock,
                 Map<String,Object> properties)
Specified by:
lock in interface javax.persistence.EntityManager
Overrides:
lock in class org.datanucleus.jpa.EntityManagerImpl

detach

public void detach(Object entity)
Specified by:
detach in interface javax.persistence.EntityManager
Overrides:
detach in class org.datanucleus.jpa.EntityManagerImpl


Copyright © 2011. All Rights Reserved.