Configuration du fournisseur de persistance WSJPA
Le fournisseur de persistance WebSphere Application Server (WSJPA) est le fournisseur de persistance par défaut de Java Persistence API (JPA) 2.0.
Pourquoi et quand exécuter cette tâche
- Prise en charge SQL statique à l'aide de la fonction DB2 pureQuery
- Prise en charge de la tentative d'accès
- Prise en charge de la fonction de trace améliorée
- Génération d'ID version
- Commandes et scripts spécifiques au produit WebSphere
- Fichiers de messages traduits
- Vérification des mémoires cache à la recherche de relations plusieurs à un ou un à un chargées de façon passive. Le fait d'affecter la valeur true à la propriété wsjpa.BrokerImpl signifie que l'implémentation JPA tente de charger de zones passives de la mémoire au moment de l'exécution si les données de clé externe pour les zones passives sont disponibles. Utilisez la propriété suivante :
Cette propriété peut être utile dans de nombreux scénarios. Par exemple, supposons que vous avez une entité de personne, Person(A), qui a une relation un à un avec une autre personne, Person(B), et que Person(B) est stocké dans la mémoire cache de données L2. Si cette propriété est définie, lorsque l'implémentation JPA trouve Person(A), la clé externe chargée à partir de Person(A) servira à remplir la relation de Person(A) à Person(B).<property name="wsjpa.BrokerImpl" value="checkCacheForLazyFields=true"/>
- Le tableau suivant indique ce qui différencie les valeurs par défaut des propriétés de configuration du fournisseur de persistance JPA pour WebSphere Application Server de celles du fournisseur Apache OpenJPA :
Tableau 1. Comparaison. Comparaison entre le fournisseur de persistance JPA pour WebSphere Application Server et le fournisseur Apache OpenJPA Propriété Valeur par défaut Apache OpenJPA Valeur par défaut du fournisseur de persistance JPA pour WebSphere Application Server openjpa.Compatibility StrictIdentityValues=false StrictIdentityValues=true openjpa.RuntimeUnenhancedClasses non prise en charge avertissement openjpa.DynamicEnhancementAgent true false open.jdbc.DriverDataSource auto simple

Error Message is:org.codehaus.jackson.map.JsonMappingException:
Can not construct instance of org.apache.openjpa.util.java$util$GregorianCalendar$proxy,
problem: no suitable creator method found at
[Source: org.apache.http.conn.EofSensorInputStream@d83fbd5; line: 1, column: 4094]
Outre le remplacement des propriétés, l'utilisation du fournisseur de persistance JPA pour WebSphere Application Server par défaut implique également d'utiliser les classes JPA pour WebSphere Application Server suivantes afin de remplacer les classes correspondantes dans Apache OpenJPA :
com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager;
com.ibm.ws.persistence.jdbc.kernel.WsJpaJDBCBrokerFactory;
com.ibm.ws.persistence.jdbc.sql.DB2Dictionary;
com.ibm.ws.persistence.jdbc.sql.OracleDictionary;
com.ibm.ws.persistence.jdbc.sql.SQLFactoryImpl;
com.ibm.ws.persistence.jdbc.sql.SQLServerDictionary;
com.ibm.ws.persistence.kernel.WsJpaBrokerImpl;
com.ibm.ws.persistence.kernel.WsJpaFinalizingBrokerImpl;
Si aucun fournisseur JPA n'est configuré dans l'élément <provider> du fichier persistence.xml d'un module EJB (Enterprise JavaBeans), le fournisseur JPA par défaut qui est actuellement configuré pour ce serveur est utilisé. Le produit est associé au fournisseur de persistance JPA pour WebSphere Application Server défini comme le fournisseur par défaut. Il est toutefois possible de remplacer cette valeur par défaut et d'indiquer une valeur par défaut différente via la console d'administration.
Vous pouvez définir votre fournisseur de persistance par défaut de deux manières.
Si vous disposez d'un fournisseur de persistance par défaut, d'un nom JNDI par défaut (Java Naming and Directory Interface) de la source de données JTA (Java Transaction API) et d'un nom JNDI par défaut de la source de données non JTA, qui ont été définis dans le produit avant WebSphere Application Server version 7.0 via les propriétés de la machine virtuelle Java (JVM), les modifications apportées à ces valeurs par le biais de la console d'administration remplacent les valeurs définies via les propriétés JVM.
Ces propriétés incluent com.ibm.websphere.jpa.default.provider, com.ibm.websphere.jpa.default.jta.datasource et com.ibm.websphere.jpa.default.nonjta.datasource. Ces propriétés ne sont plus prises en charge. Toutes les valeurs qui ont été définies via ces propriétés sont affichées en tant que valeurs par défaut sur ce panneau. Ces valeurs, qui sont définies par l'intermédiaire du panneau de la console d'administration, remplacent les valeurs définies via les propriétés JVM.