public class PersistenceContext
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected java.util.List<XmlAdapter> |
adapters |
protected java.net.URI |
baseURI
The URI of the Persistence context.
|
static java.lang.String |
CLASS_NAME |
protected EntityManagerFactory |
emf
The EntityManagerFactory used to interact using JPA
|
protected JAXBContext |
jaxbContext
The JAXBConext used to produce JSON or XML
|
static java.lang.String |
JPARS_CONTEXT |
protected java.lang.String |
name
The name of the persistence context is used to look it up.
|
static java.lang.String |
SESSION_VERSION_PROPERTY |
protected TransactionWrapper |
transaction |
Modifier | Constructor and Description |
---|---|
protected |
PersistenceContext() |
|
PersistenceContext(java.lang.String emfName,
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl emf,
java.net.URI defaultURI)
Instantiates a new persistence context.
|
|
PersistenceContext(java.lang.String emfName,
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl emf,
java.net.URI defaultURI,
ServiceVersion version)
Instantiates a new persistence context.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addDynamicXMLMetadataSources(java.util.List<java.lang.Object> metadataSources,
org.eclipse.persistence.internal.sessions.AbstractSession session)
This method is used to help construct a JAXBContext from an existing EntityManagerFactory.
|
Query |
buildQuery(java.util.Map<java.lang.String,java.lang.String> tenantId,
java.lang.String name,
java.util.Map<?,?> parameters,
java.util.Map<java.lang.String,?> hints)
Builds the query.
|
protected Query |
constructQuery(EntityManager em,
java.lang.String name,
java.util.Map<?,?> parameters,
java.util.Map<java.lang.String,?> hints) |
void |
create(java.util.Map<java.lang.String,java.lang.String> tenantId,
java.lang.Object entity)
A part of the facade over the JPA API.
|
protected JAXBContext |
createDynamicJAXBContext(org.eclipse.persistence.internal.sessions.AbstractSession session)
Create a JAXBContext based on the EntityManagerFactory for this PersistenceContext.
|
protected EntityManager |
createEntityManager(java.lang.String tenantId)
A part of the facade over the JPA API
Create an EntityManager from the EntityManagerFactory wrapped by this persistence context
|
protected org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl |
createEntityManagerFactory(PersistenceUnitInfo info,
java.util.Map<java.lang.String,?> properties)
A part of the facade over the JPA API.
|
protected java.util.Map<java.lang.String,java.lang.Object> |
createJAXBProperties(org.eclipse.persistence.internal.sessions.AbstractSession session)
Build the set of properties used to create the JAXBContext based on the EntityManagerFactory that
this PersistenceContext wraps
|
void |
delete(java.util.Map<java.lang.String,java.lang.String> tenantId,
java.lang.String type,
java.lang.Object id)
A part of the facade over the JPA API
Delete the given entity in JPA and commit the changes
|
boolean |
doesExist(java.util.Map<java.lang.String,java.lang.String> tenantId,
java.lang.Object entity)
Does exist.
|
boolean |
equals(java.lang.Object other) |
void |
finalize()
Finalize.
|
java.lang.Object |
find(java.util.Map<java.lang.String,java.lang.String> tenantId,
java.lang.String entityName,
java.lang.Object id)
A part of the facade over the JPA API
Find an entity with the given name and id in JPA
|
java.lang.Object |
find(java.util.Map<java.lang.String,java.lang.String> tenantId,
java.lang.String entityName,
java.lang.Object id,
java.util.Map<java.lang.String,java.lang.Object> properties)
A part of the facade over the JPA API
Find an entity with the given name and id in JPA
|
java.lang.Object |
find(java.lang.String entityName,
java.lang.Object id)
A part of the facade over the JPA API
Find an entity with the given name and id in JPA
|
protected java.util.List<XmlAdapter> |
getAdapters() |
java.net.URI |
getBaseURI()
Gets the base uri.
|
java.lang.Class<?> |
getClass(java.lang.String entityName)
Look-up the given entity name in the EntityManagerFactory and return the class
is describes
|
org.eclipse.persistence.internal.sessions.AbstractSession |
getClientSession(EntityManager em)
Gets the client session.
|
CollectionWrapperBuilder |
getCollectionWrapperBuilder()
Getter for the collectionWrapperBuilder property with lazy initialization.
|
ClassDescriptor |
getDescriptor(java.lang.String entityName)
Lookup the descriptor for the given entity name.
|
ClassDescriptor |
getDescriptorForClass(java.lang.Class clazz)
Gets the descriptor for class.
|
EntityManagerFactory |
getEmf()
Gets the emf.
|
JAXBContext |
getJAXBContext()
Gets the jAXB context.
|
ClassDescriptor |
getJAXBDescriptorForClass(java.lang.Class clazz)
Gets the jAXB descriptor for class.
|
java.lang.String |
getName()
Gets the name.
|
RestPageableQuery |
getPageableQuery(java.lang.String queryName)
Gets REST pageable query details by query name.
|
DatabaseSession |
getServerSession()
Gets the jpa server session.
|
ServiceVersion |
getServiceVersion()
Gets JPARS version.
|
SessionLog |
getSessionLog() |
FeatureSet |
getSupportedFeatureSet()
Gets the supported feature set.
|
java.lang.String |
getVersion()
Gets the version as it appears in URI.
|
int |
hashCode() |
boolean |
isQueryPageable(java.lang.String queryName)
Finds out is given query pageable or not.
|
boolean |
isWeavingEnabled()
Checks if is weaving enabled.
|
void |
marshall(java.lang.Object object,
javax.ws.rs.core.MediaType mediaType,
java.io.OutputStream output,
boolean sendRelationships)
Marshall an entity to either JSON or XML.
|
void |
marshall(java.lang.Object object,
javax.ws.rs.core.MediaType mediaType,
java.io.OutputStream output,
boolean sendRelationships,
FieldsFilter fieldsFilter)
Marshall an entity to either JSON or XML.
|
void |
marshallEntity(java.lang.Object object,
FieldsFilter filter,
javax.ws.rs.core.MediaType mediaType,
java.io.OutputStream output)
Marshall an entity to either JSON or XML.
|
void |
marshallEntity(java.lang.Object object,
javax.ws.rs.core.MediaType mediaType,
java.io.OutputStream output)
Marshall an entity to either JSON or XML
Calling this method, will treat relationships as unfetched in the XML/JSON and marshall them as links
rather than attempting to marshall the data in those relationships
|
java.lang.Object |
merge(java.util.Map<java.lang.String,java.lang.String> tenantId,
java.lang.Object entity)
A part of the facade over the JPA API
Call jpa merge on the given object and commit
If the passed object is a list, we will iterate through the
list and merge each member
|
DynamicEntity |
newEntity(java.util.Map<java.lang.String,java.lang.String> tenantId,
java.lang.String type)
A convenience method to create a new dynamic entity of the given type
|
DynamicEntity |
newEntity(java.lang.String type)
A convenience method to create a new dynamic entity of the given type
|
protected void |
postMarshallEntity(java.lang.Object object) |
protected void |
preMarshallEntity(java.lang.Object object)
Process an entity and add any additional data that needs to be added prior to marshalling
This method will both single entities and lists of entities
|
protected void |
preMarshallIndividualEntity(java.lang.Object entity)
Add any data required prior to marshalling an entity to XML or JSON
In general, this will only affect fields that have been weaved into the object
|
int |
queryExecuteUpdate(java.util.Map<java.lang.String,java.lang.String> tenantId,
java.lang.String name,
java.util.Map<?,?> parameters,
java.util.Map<java.lang.String,?> hints)
Query execute update.
|
java.util.List |
queryMultipleResults(java.util.Map<java.lang.String,java.lang.String> tenantId,
java.lang.String name,
java.util.Map<?,?> parameters,
java.util.Map<java.lang.String,?> hints)
Query multiple results.
|
java.lang.Object |
removeAttribute(java.util.Map<java.lang.String,java.lang.String> tenantId,
java.lang.String entityName,
java.lang.Object id,
java.lang.String attribute,
java.lang.String listItemId,
java.lang.Object entity,
java.lang.String partner)
Removes the attribute.
|
protected void |
removeMappingValueFromObject(java.lang.Object object,
java.lang.Object attributeValue,
DatabaseMapping mapping,
DatabaseMapping partner) |
void |
setBaseURI(java.net.URI baseURI)
Sets the base uri.
|
protected void |
setMappingValueInObject(java.lang.Object object,
java.lang.Object attributeValue,
DatabaseMapping mapping,
DatabaseMapping partner) |
void |
setVersion(java.lang.String version)
Sets the version.
|
void |
stop()
Stop the current application instance
|
java.lang.String |
toString()
To string.
|
java.lang.Object |
unmarshal(java.lang.Class type,
javax.ws.rs.core.MediaType acceptedMediaType,
java.io.InputStream in)
Unmarshal.
|
java.lang.Object |
unmarshalEntity(java.lang.String type,
javax.ws.rs.core.MediaType acceptedMediaType,
java.io.InputStream in)
Unmarshal entity.
|
java.lang.Object |
updateOrAddAttribute(java.util.Map<java.lang.String,java.lang.String> tenantId,
java.lang.String entityName,
java.lang.Object id,
java.util.Map<java.lang.String,java.lang.Object> properties,
java.lang.String attribute,
java.lang.Object attributeValue,
java.lang.String partner)
Update or add attribute.
|
protected java.lang.Object |
wrap(java.lang.Object entity)
Make adjustments to an unmarshalled entity based on what is found in the weaved fields
|
public static final java.lang.String JPARS_CONTEXT
public static final java.lang.String CLASS_NAME
public static final java.lang.String SESSION_VERSION_PROPERTY
protected java.util.List<XmlAdapter> adapters
protected java.lang.String name
protected EntityManagerFactory emf
protected JAXBContext jaxbContext
protected java.net.URI baseURI
protected TransactionWrapper transaction
protected PersistenceContext()
public PersistenceContext(java.lang.String emfName, org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl emf, java.net.URI defaultURI)
emfName
- the emf nameemf
- the emfdefaultURI
- the default uripublic PersistenceContext(java.lang.String emfName, org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl emf, java.net.URI defaultURI, ServiceVersion version)
emfName
- the emf nameemf
- the emfdefaultURI
- the default uriversion
- REST service versionpublic boolean isWeavingEnabled()
public java.lang.String getVersion()
public ServiceVersion getServiceVersion()
protected void addDynamicXMLMetadataSources(java.util.List<java.lang.Object> metadataSources, org.eclipse.persistence.internal.sessions.AbstractSession session)
metadataSources
- session
- public void create(java.util.Map<java.lang.String,java.lang.String> tenantId, java.lang.Object entity) throws java.lang.Exception
tenantId
- entity
- java.lang.Exception
protected JAXBContext createDynamicJAXBContext(org.eclipse.persistence.internal.sessions.AbstractSession session) throws JAXBException, java.io.IOException
session
- JAXBException
java.io.IOException
protected org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl createEntityManagerFactory(PersistenceUnitInfo info, java.util.Map<java.lang.String,?> properties)
info
- properties
- protected EntityManager createEntityManager(java.lang.String tenantId)
tenantId
- protected java.util.Map<java.lang.String,java.lang.Object> createJAXBProperties(org.eclipse.persistence.internal.sessions.AbstractSession session) throws java.io.IOException
session
- java.io.IOException
public void delete(java.util.Map<java.lang.String,java.lang.String> tenantId, java.lang.String type, java.lang.Object id)
public boolean doesExist(java.util.Map<java.lang.String,java.lang.String> tenantId, java.lang.Object entity)
tenantId
- the tenant identity
- the entitypublic void finalize()
finalize
in class java.lang.Object
public java.lang.Object find(java.lang.String entityName, java.lang.Object id)
entityName
- id
- public java.lang.Object find(java.util.Map<java.lang.String,java.lang.String> tenantId, java.lang.String entityName, java.lang.Object id)
tenantId
- entityName
- id
- public java.lang.Object find(java.util.Map<java.lang.String,java.lang.String> tenantId, java.lang.String entityName, java.lang.Object id, java.util.Map<java.lang.String,java.lang.Object> properties)
tenantId
- entityName
- id
- properties
- - query hints used on the findpublic java.lang.Object updateOrAddAttribute(java.util.Map<java.lang.String,java.lang.String> tenantId, java.lang.String entityName, java.lang.Object id, java.util.Map<java.lang.String,java.lang.Object> properties, java.lang.String attribute, java.lang.Object attributeValue, java.lang.String partner)
tenantId
- the tenant identityName
- the entity nameid
- the idproperties
- the propertiesattribute
- the attributeattributeValue
- the attribute valuepartner
- the partnerpublic java.lang.Object removeAttribute(java.util.Map<java.lang.String,java.lang.String> tenantId, java.lang.String entityName, java.lang.Object id, java.lang.String attribute, java.lang.String listItemId, java.lang.Object entity, java.lang.String partner)
tenantId
- the tenant identityName
- the entity nameid
- the idattribute
- the attributelistItemId
- entity
- partner
- the partnerprotected void removeMappingValueFromObject(java.lang.Object object, java.lang.Object attributeValue, DatabaseMapping mapping, DatabaseMapping partner)
public java.net.URI getBaseURI()
public java.lang.Class<?> getClass(java.lang.String entityName)
entityName
- public DatabaseSession getServerSession()
public org.eclipse.persistence.internal.sessions.AbstractSession getClientSession(EntityManager em)
em
- the empublic ClassDescriptor getDescriptor(java.lang.String entityName)
entityName
- public ClassDescriptor getDescriptorForClass(java.lang.Class clazz)
clazz
- the clazzpublic ClassDescriptor getJAXBDescriptorForClass(java.lang.Class clazz)
clazz
- the clazzpublic EntityManagerFactory getEmf()
public JAXBContext getJAXBContext()
public java.lang.String getName()
public SessionLog getSessionLog()
public java.lang.Object merge(java.util.Map<java.lang.String,java.lang.String> tenantId, java.lang.Object entity)
tenantId
- entity
- public DynamicEntity newEntity(java.lang.String type)
type
- public DynamicEntity newEntity(java.util.Map<java.lang.String,java.lang.String> tenantId, java.lang.String type)
tenantId
- type
- public int queryExecuteUpdate(java.util.Map<java.lang.String,java.lang.String> tenantId, java.lang.String name, java.util.Map<?,?> parameters, java.util.Map<java.lang.String,?> hints)
tenantId
- the tenant idname
- the nameparameters
- the parametershints
- the hintspublic java.util.List queryMultipleResults(java.util.Map<java.lang.String,java.lang.String> tenantId, java.lang.String name, java.util.Map<?,?> parameters, java.util.Map<java.lang.String,?> hints)
tenantId
- the tenant idname
- the nameparameters
- the parametershints
- the hintsprotected Query constructQuery(EntityManager em, java.lang.String name, java.util.Map<?,?> parameters, java.util.Map<java.lang.String,?> hints)
public Query buildQuery(java.util.Map<java.lang.String,java.lang.String> tenantId, java.lang.String name, java.util.Map<?,?> parameters, java.util.Map<java.lang.String,?> hints)
tenantId
- the tenant idname
- the nameparameters
- the parametershints
- the hintsprotected void setMappingValueInObject(java.lang.Object object, java.lang.Object attributeValue, DatabaseMapping mapping, DatabaseMapping partner)
public void stop()
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.Object unmarshalEntity(java.lang.String type, javax.ws.rs.core.MediaType acceptedMediaType, java.io.InputStream in) throws JAXBException
type
- the type of the entity to unmarshalacceptedMediaType
- the accepted media typein
- the input stream to unmarshalJAXBException
- the JAXB exceptionpublic java.lang.Object unmarshal(java.lang.Class type, javax.ws.rs.core.MediaType acceptedMediaType, java.io.InputStream in) throws JAXBException
type
- the type of the entity to unmarshalacceptedMediaType
- the accepted media typein
- the input stream to unmarshalJAXBException
- the JAXB exceptionprotected java.lang.Object wrap(java.lang.Object entity)
entity
- public void marshallEntity(java.lang.Object object, javax.ws.rs.core.MediaType mediaType, java.io.OutputStream output) throws JAXBException
object
- mediaType
- output
- JAXBException
public void marshallEntity(java.lang.Object object, FieldsFilter filter, javax.ws.rs.core.MediaType mediaType, java.io.OutputStream output) throws JAXBException
object
- the object to marshal.filter
- the filter (included/excluded fields) to use.mediaType
- the media type (XML/JSON).output
- the result.JAXBException
public void marshall(java.lang.Object object, javax.ws.rs.core.MediaType mediaType, java.io.OutputStream output, boolean sendRelationships) throws JAXBException
object
- mediaType
- output
- sendRelationships
- if this is set to true, relationships will be sent as links instead of sending.
the actual objects in the relationshipsJAXBException
public void marshall(java.lang.Object object, javax.ws.rs.core.MediaType mediaType, java.io.OutputStream output, boolean sendRelationships, FieldsFilter fieldsFilter) throws JAXBException
object
- the object to marshal.mediaType
- the media type (XML/JSON).output
- the result.sendRelationships
- if this is set to true, relationships will be sent as links instead of sending
the actual objects in the relationships.fieldsFilter
- Specifies fields to include/exclude from the response.JAXBException
protected void preMarshallEntity(java.lang.Object object)
object
- protected void preMarshallIndividualEntity(java.lang.Object entity)
entity
- protected void postMarshallEntity(java.lang.Object object)
protected java.util.List<XmlAdapter> getAdapters() throws JPARSException
JPARSException
public FeatureSet getSupportedFeatureSet()
public boolean isQueryPageable(java.lang.String queryName)
queryName
- named query to check.public RestPageableQuery getPageableQuery(java.lang.String queryName)
queryName
- named query name.public void setVersion(java.lang.String version)
version
- the new version.public void setBaseURI(java.net.URI baseURI)
baseURI
- the new base uripublic CollectionWrapperBuilder getCollectionWrapperBuilder()
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object other)
equals
in class java.lang.Object