Notes de version de Sun GlassFish Enterprise Server 2.1

Java Persistence

TopLink suppose que la propriété/le champ myCollection est clonable (Issue Tracker 556)

Description

Si l'API java.util.Arrays.asList() est utilisée pour convertir un Object[] en une Collection, JDK retourne une implémentation de java.util.ArrayList non clonable. L'exception suivante est alors générée :


The method invocation of the method [protected native java.lang.Object 
java.lang.Object.clone() throws java.lang.CloneNotSupportedException] on the object 
[[pkg.A id = xxx]], of class [class java.util.Arrays$ArrayList], triggered an 
exception. Internal Exception: java.lang.reflect.InvocationTargetException Target 
Invocation Exception: java.lang.CloneNotSupportedException: 
java.util.Arrays$ArrayList

Ce problème fait l'objet d'un suivi sur https://glassfish.dev.java.net/issues/show_bug.cgi?id=556.

Solution

Créez une autre collection à l'aide de son constructeur ; par exemple :


myCollection = new ArrayList(java.util.Arrays.asList(a))

GenerationType.IDENTITY et DataDirect avec SyBase (Issue Tracker 2431)

Description

La tentative d'insertion d'une entité utilisant GenerationType.IDENTITY échoue lorsque le pilote DataDirect est utilisé avec SyBase. Cette tentative échoue car le pilote DataDirect crée une procédure stockée pour chaque instruction préparée et paramétrée.

Solution

Dans le fichier domain.xml, définissez la propriété PrepareMethod=direct sur la source de données correspondante.