2013-02-07 2 views
0

의 목록 를 삽입 처리하기 위해 DAO 파일을 구성해야합니까 그래서 같은 목록의 변수가 객체 : 어떻게 MyBatis로

ExportQueue.java 나는했습니다

public class ExportQueue implements Serializable { 
    private List<String> errors; 

    public List<String> getErrors() { 
     return errors; 
    } 

    public void setErrors(List<String> errors) { 
     this.errors = errors; 
    } 
    public void addError(String error) { 
     if(this.errors == null) this.errors = new ArrayList<String>(); 
     this.errors.add(error); 
    } 
} 

을 이에 대한 된 resultMap ...

ExportQueueDao.xml 정의

@Insert(INSERT_UPDATE) 
@Options(useGeneratedKeys = true, keyProperty = "id") 
int insertOrUpdate(ExportQueue ExportQueue); 

ExportQueueDao.java은 내가 CommaSeparatedStringListTypeHandler 정의하지만 개체를 ​​삽입 할 때 오류가 받고 있어요 있습니다. 내가 아는 한 INSERT는 ResultMap을 사용하지 않으므로 TypeHander를 볼 수 없으므로 List 오류와 관련하여 무엇을해야할지 모릅니다.

이것은 내가 설정 한 전류를 얻을 오류 ...이 그렇게 MyBatis로는 List<String> errors으로 무엇을 알고 구성하려면 어떻게

Caused by: org.apache.ibatis.executor.ExecutorException: There was no TypeHandler found for parameter errors of statement ....dao.ExportQueueDao.insertOrUpdate 

?

+0

@ kasdega이 결과 맵을 사용하여 작업을 수행 할 수 있습니다. 즉,이 연산 결과 맵을 사용하면 모든 연산이 성공할 수 있습니다. 그렇지 않으면 모두 실패합니다. 나는 당신이 어떤 표현을 놓치고 있다고 생각합니다. 전체 map.xml을 넣을 수 있습니까? 아니면이 하나가 full map.xml입니까? – erhun

+0

dao.xml 파일의 나머지 부분은 다소 평온한 것이므로 간결하게하기 위해 의도적으로 제외 시켰습니다. 오류 열을 모두 제거하면 올바르게 작동합니다. – kasdega

+0

당신은 커스텀 타입 핸들러를 정의하려고하는데, 그래서 CommaSeparatedStringListTypeHandler 클래스 구현은 무엇입니까? – erhun

답변

1
당신은 형 목록도

이 정의되면, 늘 특별히 "오류"에 대한 typeHandler를 매핑 결과에서 언급해야

동안 기본 핸들로 CommaSeparatedStringListTypeHandler를 사용하도록 MyBatis로-설정에서 정의 할 수 있습니다

MyBatis를 삽입하면 기본적으로 CommaSeparatedStringListTypeHandler가 오류에 사용됩니다.

<typeHandlers> 
     <typeHandler javaType='List' handler='CommaSeparatedStringListTypeHandler' /> 
</typeHandlers>