Java 可以将投影接口解析为对象吗?春天
实际上在Spring中有一个投影界面。像这样:Java 可以将投影接口解析为对象吗?春天,java,spring,hibernate,spring-data,Java,Spring,Hibernate,Spring Data,实际上在Spring中有一个投影界面。像这样: public interface DaoObjectProjection{ Integer getTotalAmount(); String getCode(); String getName(); String getLastName(); } 我想把它发送到另一个微服务,我知道不能发送接口,因为如果使用RestTemplate,代理功能不起作用。出于上述原因,我使用了另一个类似的对象: public clas
public interface DaoObjectProjection{
Integer getTotalAmount();
String getCode();
String getName();
String getLastName();
}
我想把它发送到另一个微服务,我知道不能发送接口,因为如果使用RestTemplate,代理功能不起作用。出于上述原因,我使用了另一个类似的对象:
public class ObjectWantSend {
private Integer totalAmount;
private String code;
private String name;
private String lastName;
//Getters
//Setters
}
我的问题是,是否存在将我的投影界面直接解析到此对象的方法,或者是否需要这样逐个设置:
ObjectWantSend.setTotalAmount(DaoObjectProjection.getTotalAmount);
我将Hibernate与Spring一起使用。我认为,正如其他用户所说,您应该使用MapStruct。这可能是您问题的解决方案:
@Mapper
public interface ObjectMapper {
ObjectMapper INSTANCE = Mappers.getMapper( ObjectMapper.class );
@Mapping(source = "totalAmount", target = "totalAmount")
ObjectWantSend objectWantSend(DaoObjectProjection aux);
}
该库在Spring和Hibernate中运行得非常好。我希望您觉得它有用。代理功能是什么意思?这段和这段引用的段落
查询执行引擎在运行时为返回的每个元素创建该接口的代理实例,并将对公开方法的调用转发给目标对象。
@AndrewSI不明白为什么在其余部分使用该接口这个电话打不通。但是,一般来说,将本地数据访问与其他下游交互分开。有时本地数据结构与下游交互所期望的不匹配,有时不匹配。另请参见:好的,谢谢你的回答,如果你想回答问题并给你接受的答案@安德鲁斯