正在使用的技术堆栈:
Java 8 MapStruct:1.2.0.Final Lombok:1.16.18 IDE:IntelliJ - 已经安装了Lombok插件
@Getter
和@Setter
注释时,我遇到了问题,mapstruct
无法找到属性并说:Unknown property "id" in result type com.vg.once.dto.OneDto. Did you mean "null"?
以下是项目文件:
实体对象:One.java:
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class One {
private int id;
private Integer version;
private int projectId;
private String title;
private String code;
private int sortOrder;
}
Run Code Online (Sandbox Code Playgroud)
DTO对象:OneDTO.java:
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class OneDto {
private int id;
private …
Run Code Online (Sandbox Code Playgroud) intellij-idea lombok java-8 mapstruct intellij-lombok-plugin
我在 kotlin 中使用安全转换选项,即as?
当数据类型不兼容时,我仍然收到类转换异常,当我通过编写执行案例的通用方法执行此操作时,会发生这种情况,但是如果我直接执行转换,它会返回正如安全转换所预期的那样,为 null
class CastTest(val data: Any) {
fun castViaGenericMethod(): TypeA? {
return castToContext<TypeA>()
}
fun castDirectly(): TypeA? {
return data as? TypeA
}
private fun <CONTEXT> castToContext(): CONTEXT? = data as? CONTEXT
}
Run Code Online (Sandbox Code Playgroud)
castViaGenericMethod()
->ClassCastException
当数据不是 类型时,此方法将抛出异常TypeA
。
->当无法进行强制转换时castDirectly()
返回。null
请建议如何做到这一点。
我遇到了一种情况,我的映射方法有3个参数,而这三个参数都用于派生目标类型的属性之一。
我在接口中创建了一个默认的映射方法,保留了派生该属性的逻辑,现在要调用此方法,可以expression = "java( /*method call here*/ )"
在@Mapping
批注中使用。
有什么办法可以对任何mapstruct注释执行此操作,例如@qualifiedByName
,我尝试注释具有表达式属性的注释并使用了qualifiedByName,但是它不起作用:
@Mapper
public interface OneMapper {
@Mapping(target="id", source="one.id")
//@Mapping(target="qualified",expression = "java( checkQualified (one, projId, code) )")
@Mapping(target="qualified",qualifiedByName="checkQualifiedNamed")
OneDto createOne (One one, Integer projId, Integer val, String code);
@Named("checkQualifiedNamed")
default Boolean checkQualified (One one, Integer projId, Integer val, String code) {
if(one.getProjectId() == projId && one.getVal() == val && one.getCode().equalsIgnoreCase(code)) {
return Boolean.TRUE;
}
return Boolean.FALSE;
}
}
Run Code Online (Sandbox Code Playgroud) Oracle中是否有任何内部函数支持银行家舍入,我需要在选择查询中使用半到奇数银行家舍入