Protocol buffers mybatis映射protobuf生成的类

Protocol buffers mybatis映射protobuf生成的类,protocol-buffers,mybatis,protobuf-java,Protocol Buffers,Mybatis,Protobuf Java,如何在mybatis mapper中将结果映射到protobuf类?protobuf类中没有set方法。我是否应该使用newBuilder和build方法生成实体类?是的,这是可能的。在从原型文件生成模型类时,每个模型类都有一个生成器(扩展了GeneratedMessageV3.Builder)。因此,可以在模型定义中添加,如以下示例所示: @ResultType(MyProto.Builder.class) 当您使用ResultHandler时,它工作正常,因此您可以在那里调用build方法

如何在mybatis mapper中将结果映射到protobuf类?protobuf类中没有set方法。我是否应该使用newBuilder和build方法生成实体类?

是的,这是可能的。在从原型文件生成模型类时,每个模型类都有一个生成器(扩展了GeneratedMessageV3.Builder)。因此,可以在模型定义中添加,如以下示例所示:

@ResultType(MyProto.Builder.class)
当您使用ResultHandler时,它工作正常,因此您可以在那里调用build方法,如:

@Override
public void handleResult(ResultContext<? extends GeneratedMessageV3.Builder> resultContext) {
    GeneratedMessageV3 proto = resultContext.getResultObject().build(); 
    MyProto myproto = (MyProto)proto;

    // do something with myproto

}
@覆盖

public void handleResult(ResultContext有一个技巧。假设您已经定义了以下protobuf

package com.example.protobuf;
消息HelloMessage{
字符串id;
uint32代码;
}
您可以像这样使用您的
HelloMapper


从示例中选择id、代码
请注意,使用了
id
code
而不是
id
code