我正在使用MyBatis在Spring-ws中创建一个项目。 我在xsd中有很多Web服务定义。 Spring正在基于xsd创建POJO类。
问题是在xsd中我有包含参数let lambdaInvoker = AWSLambdaInvoker.default()
lambdaInvoker.invokeFunction(lambdaFunctionString, jsonObject: jsonObject).continueWith(block: {(task:AWSTask<AnyObject>) -> Any? in
if let error = task.error as NSError? {
print(task.error!.localizedDescription)
print(task.error!)
DispatchQueue.main.async(execute: {
if (error.domain == AWSLambdaInvokerErrorDomain) && (AWSLambdaInvokerErrorType.functionError == AWSLambdaInvokerErrorType(rawValue: error.code)) {
print("Function error: \(String(describing: error.userInfo[AWSLambdaInvokerFunctionErrorKey]))")
completion(nil)
} else {
print("Error: \(error)")
completion(nil)
}
})
return nil
}
// Handle response in task.result
DispatchQueue.main.async(execute: {
if let jsonArray = task.result as? NSArray {
completion(jsonArray)
} else {
completion(nil)
}
})
return nil
})
nillable="true"
生成的POJO中的字段如下所示:
<xs:element name="numericParam" type="xs:int" minOccurs="0" maxOccurs="1" nillable="true"/>
我想在MyBatis配置中创建自定义protected JAXBElement<Integer> numericParam;
来处理TypeHandler
类型,但我怎么知道要使用哪个JAXBElement<Integer>
。
是否可以知道哪个映射器正在调用我的自定义TypeHandler?在TypeHandler中我只有列名。
答案 0 :(得分:0)
这在mybatis中目前不可能(版本3.4.6)。没有关于上下文的信息(如封闭类型或映射器方法)被传递给处理程序。
如果你确实想使用jaxb生成的类型,你需要为每个字段创建一个处理程序(因为有一个共同的基础可以实现所有的逻辑)。