我已经fork了一个Atlassian Stash插件,用于构建服务器集成,它使用ActiveObjects组件来存储数据。我遇到了以下问题:
如果我按照其他字段的方式添加getter和setter来处理我的OneToMany字段,就像这样:
@OneToMany
TestMapping[] getTestMapping();
void setTestMapping(TestMapping[] powerMappings);
当我使用实体时,出现以下异常:
[INFO] [talledLocalContainer] Caused by: java.lang.RuntimeException: Unrecognized type: [Lsome.package.TestMapping;
[INFO] [talledLocalContainer] at net.java.ao.types.TypeManager.getType(TypeManager.java:68) ~[na:na]
[INFO] [talledLocalContainer] at net.java.ao.schema.SchemaGenerator.getSQLTypeFromMethod(SchemaGenerator.java:481) ~[na:na]
搜索此问题的解决方法,只找到了像这篇文章中建议的删除setter的解决方法。然而,这会导致如果已存在配置,则无法设置字段。我认为在这里不是删除ActiveObject并保存新的方式。
如何解决这个问题?或者如果不可能,如何在ActiveObjects中更新现有对象而不使用setter呢?