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.
|
protected JAXBContext |
context
The JAXBConext used to produce JSON or XML
|
protected EntityManagerFactory |
emf
The EntityManagerFactory used to interact using JPA
|
static java.lang.String |
JPARS_CONTEXT |
protected java.lang.String |
name
The name of the persistence context is used to look it up.
|
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.
|
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) |
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
Persist an entity in JPA and commit
|
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
Create an EntityManagerFactory using the given PersistenceUnitInfo and properties
|
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.
|
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
|
java.lang.Object |
findAttribute(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)
Find attribute.
|
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
|
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.
|
DatabaseSession |
getJpaSession()
Gets the jpa session.
|
java.lang.String |
getName()
Gets the name.
|
java.lang.String |
getVersion() |
boolean |
isWeavingEnabled() |
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
|
void |
marshallEntity(java.lang.Object object,
javax.ws.rs.core.MediaType mediaType,
java.io.OutputStream output,
boolean sendRelationships)
Marshall an entity to either JSON or XML
|
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) |
void |
stop()
Stop the current application instance
|
java.lang.String |
toString()
To string.
|
java.lang.Object |
unmarshalEntity(java.lang.Class type,
javax.ws.rs.core.MediaType acceptedMedia,
java.io.InputStream in)
Marshall an entity to either JSON or XML
|
java.lang.Object |
unmarshalEntity(java.lang.String type,
javax.ws.rs.core.MediaType acceptedMedia,
java.io.InputStream in)
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 |
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
protected java.util.List<XmlAdapter> adapters
protected java.lang.String name
protected EntityManagerFactory emf
protected JAXBContext context
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 boolean isWeavingEnabled()
public java.lang.String getVersion()
public void setVersion(java.lang.String version)
protected void addDynamicXMLMetadataSources(java.util.List<java.lang.Object> metadataSources, org.eclipse.persistence.internal.sessions.AbstractSession session)
metadataSources
- persistenceUnitName
- session
- public void create(java.util.Map<java.lang.String,java.lang.String> tenantId, java.lang.Object entity)
tenantId
- entity
- 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
persistenceUnitName
- 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 findAttribute(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)
tenantId
- the tenant identityName
- the entity nameid
- the idproperties
- the propertiesattribute
- the attributepublic 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 idproperties
- the propertiesattribute
- the attributeattributeValue
- the attribute valuepartner
- 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 getJpaSession()
public 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 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)
public void setBaseURI(java.net.URI baseURI)
baseURI
- the new base uriprotected 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 acceptedMedia, java.io.InputStream in) throws JAXBException
object
- mediaType
- output
- JAXBException
public java.lang.Object unmarshalEntity(java.lang.Class type, javax.ws.rs.core.MediaType acceptedMedia, java.io.InputStream in) 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
protected 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, 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
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