Sun GlassFish Enterprise Server 2.1 发行说明

Java Persistence

TopLink 期望 Collection 字段/属性可复制(问题跟踪器 556)

说明

如果 java.util.Arrays.asList() API 用于将 Object[] 转换为 Collection,则 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 驱动程序(问题跟踪器 2431)

说明

如果与 SyBase 一起使用 DataDirect 驱动程序,则尝试插入使用 GenerationType.IDENTITY 的实体失败。由于 DataDirect 驱动程序为每一个参数化的预处理语句创建一个存储过程,因此该尝试失败。

解决方法

domain.xml 文件中,在相应的数据源上设置属性 PrepareMethod=direct