Sun GlassFish Communications Server 1.5 リリースノート

Java Persistence

TopLink は Collection フィールド/プロパティーがクローン可能であることを想定する (Issue Tracker 556)

説明

Object[] から Collection への変換に java.util.Arrays.asList() API を使用している場合、JDK はクローン可能ではない java.util.ArrayList の実装を返します。結果として次の例外が発生します。


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

この問題は、https://glassfish.dev.java.net/issues/show_bug.cgi?id=556 で説明されています。

解決方法

別のコレクションをそのコンストラクタを使用して作成します。一例として、次のようにします。


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

GenerationType.IDENTITY および SyBase とともに使用する DataDirect ドライバ (Issue Tracker 2431)

説明

DataDirect ドライバを SyBase とともに使用すると、GenerationType.IDENTITY を使用するエンティティーの挿入に失敗します。この失敗は、パラメータ化された PreparedStatement ごとに DataDirect ドライバがストアドプロシージャーを作成するために発生します。

解決方法

domain.xml ファイルで、対応するデータソースのプロパティー PrepareMethod=direct を設定します。