Ein JPA-Loader (Java Persistence API (JPA)) ist eine Plug-in-Implementierung, die JPA für die Interaktion mit der Datenbank verwendet.
Die folgenden Parameter sind erforderlich. Diese Parameter werden in der Bean JPALoader oder JPAEntityLoader und in der Bean JPATxCallback konfiguriert.
Neben den JPA-Parametern, die in eXtreme Scale konfiguriert werden müssen, werden JPA-Metadaten verwendet, um den Schlüssel von den JPA-Entitäten abzurufen. Die JPA-Metadaten können als Annotation oder in einer Datei orm.xml konfiguriert werden, die in der Datei persistence.xml angegeben wird. Sie sind nicht Teil der Konfiguration von eXtreme Scale.
Informationen zum Konfigurieren des Plug-ins JPALoader oder JPAEntityLoader finden Sie unter Plug-ins für die Kommunikation mit Datenbanken.
Konfigurieren Sie ein JPATxCallback-Transaktions-Callback zusammen mit der Loader-Konfiguration. Das folgende Beispiel ist eine ObjectGrid-XML-Deskriptordatei (objectgrid.xml), in der ein JPAEntityLoader und ein JPATxCallback konfiguriert sind:
Loader mit Callback konfigurieren - XML-Beispiel
<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd"
xmlns="http://ibm.com/ws/objectgrid/config">
<objectGrids>
<objectGrid name="JPAEM" entityMetadataXMLFile="jpaEMD.xml">
<bean id="TransactionCallback"
className="com.ibm.websphere.objectgrid.jpa.JPATxCallback">
<property
name="persistenceUnitName"
type="java.lang.String"
value="employeeEMPU" />
</bean>
<backingMap name="Employee" pluginCollectionRef="Employee" />
</objectGrid>
</objectGrids>
<backingMapPluginCollections>
<backingMapPluginCollection id="Employee">
<bean id="Loader"
className="com.ibm.websphere.objectgrid.jpa.JPAEntityLoader">
<property
name="entityClassName"
type="java.lang.String"
value="com.ibm.ws.objectgrid.jpa.test.entity.Employee"/>
</bean>
</backingMapPluginCollection>
</backingMapPluginCollections>
</objectGridConfig>
Wenn Sie eine JPAPropertyFactory konfigurieren möchten, müssen Sie eine Spring-Konfiguration verwenden. Im Folgenden sehen Sie eine XML-Beispielkonfigurationsdatei mit dem Namen JPAEM_spring.xml, in der eine Spring-Bean für die Konfigurationen von eXtreme Scale konfiguriert wird.
Loader mit JPA-Eigenschaften-Factory konfigurieren - XML-Beispiel
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:objectgrid="http://www.ibm.com/schema/objectgrid"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<objectgrid:JPAEntityLoader id="jpaLoader"
entityClassName="com.ibm.ws.objectgrid.jpa.test.entity.Employee"/>
<objectgrid:JPATxCallback id="jpaTxCallback" persistenceUnitName="employeeEMPU" />
</beans>
Die XML-Konfigurationsdatei Objectgrid.xml folgt. Beachten Sie, dass der ObjectGrid-Name JPAEM ist und dem ObjectGrid-Namen in der Spring-Konfigurationsdatei JPAEM_spring.xml entspricht.
JPAEM-Loader-Konfiguration - XML-Beispiel
<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd"
xmlns="http://ibm.com/ws/objectgrid/config">
<objectGrids>
<objectGrid name="JPAEM" entityMetadataXMLFile="jpaEMD.xml">
<bean id="TransactionCallback"
className="{spring}jpaTxCallback"/>
<backingMap name="Employee" pluginCollectionRef="Employee"
writeBehind="T4"/>
</objectGrid>
</objectGrids>
<backingMapPluginCollections>
<backingMapPluginCollection id="Employee">
<bean id="Loader" className="{spring}jpaLoader" />
</backingMapPluginCollection>
</backingMapPluginCollections>
</objectGridConfig>
Eine Entität kann mit den JPA-Annotationen und mit den EntityManager-Annotationen von eXtreme Scale annotiert werden. Jede Annotation hat ein funktional entsprechendes XML-Element, das verwendet werden kann. Deshalb wurde in eXtreme Scale der Spring-Namespace hinzugefügt. Sie können diese Annotationen auch über die Spring-Namespace-Unterstützung konfigurieren. Weitere Informationen finden Sie im Abschnitt Übersicht über das Spring-Framework.