我正在尝试通过 Cayenne 接口保存持久对象:
ServerRuntime runtime = new ServerRuntime("cayenne.xml");
...
DataContext context = (DataContext)runtime.getContext();
ObjectWithArray owa = context.newObject(ObjectWithArray.class);
owa.setArray(new Double[] {1.0, 2.0});
context.commitChanges();
使用此变体,相应的表字段在保存一些奇怪的字符串后存储,例如
aced0005757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c020000787000000002740003312e30740003322e300000000000000000
而不是({1.0,2.0})之类的东西。如果我使用 sql 数组类型而不是 Double[] 它不会保存抛出不可序列化的异常。