请您帮我解决以下异常:org.springframework.dao.InvalidDataAccessApiUsageException:参数值[myCalendar]与预期的类型[pl.sda.jira.calendar.domain.model.Name(n / a)不匹配]。
我很难解决此错误。如果您能让我知道我有什么选择,将不胜感激。
出现错误的测试:
@Test
public void shouldGetCalendarEqualToName() throws Exception {
MockHttpServletResponse response = restClient.perform(
MockMvcRequestBuilders.post("/calendars")
.param("columnName", "name")
.param("type", "equals")
.param("value", "myCalendar"))
.andReturn().getResponse();
assertEquals(HttpStatus.OK.value(), response.getStatus());
assertEquals("[{\"name\":\"calendar0\",\"owner\":\"Jon\"}]", response.getContentAsString());
}
我的QueryService(仅从切换用例粘贴适用的用例):
private Specification<Calendar> createSpecificationsFrom(QueryCriteriaDto queryCriteriaDto) {
switch (queryCriteriaDto.getType()) {
case "equals":
return ((root, criteriaQuery, criteriaBuilder) ->
criteriaBuilder.equal(root.get(queryCriteriaDto.getColumnName()), (queryCriteriaDto.getValue())));
}
throw new IllegalArgumentException();
}
我的班级名称:
public class Name {
private String value;
public Name(String value) {
this.value = value;
}
public String value() {
return value;
}}
我也在使用Converter:
@Converter
public class NameConverter implements AttributeConverter<Name, String> {
@Override
public String convertToDatabaseColumn(Name name) {
return name.value();
}
@Override
public Name convertToEntityAttribute(String value) {
return new Name(value);
}}