如果 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)) |
如果与 SyBase 一起使用 DataDirect 驱动程序,则尝试插入使用 GenerationType.IDENTITY 的实体失败。由于 DataDirect 驱动程序为每一个参数化的预处理语句创建一个存储过程,因此该尝试失败。
在 domain.xml 文件中,在相应的数据源上设置属性 PrepareMethod=direct。