InvalidDataAccessApiUsageException:参数值与预期类型不匹配

时间:2018-07-16 21:29:07

标签: spring-data-jpa

请您帮我解决以下异常: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);
}}

0 个答案:

没有答案