2017-04-10 1 views
0

나는 다음과 같은 자바 클래스가 있습니다mybatis를 사용하여 POJO 항목의 배열을 저장 프로 시저에 전달 하시겠습니까?

public class item implements Serializable {  

    private long id; 
    private String name;  

    public long getUuid() { 
     return id; 
    }  

    public void setId(long id) { 
     this.id = id; 
    }  

    public String getName() { 
     return this.name; 
    }  

    public void setName(String name) { 
     this.name = name; 
    }  
} 

내가이의 배열이 있다고 가정하자 - 내가 컬렉션을 반복 할 수있는 저장 프로 시저가 - "@pItemsToProcess"로 알려져있다.

저장 프로 시저에서이 배열을 사용하려면 어떻게해야합니까?

그래서 어떤 종류의 형식 처리기를 작성해야합니까? 그렇다면 배열에 해당할까요? "item"클래스? 양자 모두?

다른 사용자가 이와 비슷한 질문을하고있는 것을 보았습니다. 그러나 질문에 대한 해결 방법이없는 것 같습니다.

DB 팀이 저장 프로 시저를 변경하여 한 번에 하나의 항목으로 작업하고 각 항목과 함께 proc를 호출하는 것이 더 쉽습니다. 이 proc은 하루에 한 번만 호출되기 때문에 약 20 개의 항목이 대기 시간에 민감하지 않으므로로드가 걱정되지 않습니다.

편집 본이 라인 아래! ----------

데이터베이스 유형은 SQL 서버입니다.

+0

솔루션이 존재하지만, 실제로 유형 핸들러에 의존하지만, 구현은 DB 공급 업체 드라이버에 따라 다릅니다.이 정보를 질문에 추가 하시겠습니까? – blackwizard

+0

정보를 추가했습니다. – IWishIWasABarista

답변

0

DB가 SQL 서버 인 경우, 나는 이미 same question에 거의 대답했습니다.

편집 : 링크 Table-Valued Parameter가 보이지 않는다

앵커가 작동하기는 흥미로운 조각은 SQLServerDataTable 객체 같은 테이블 반환 매개 변수를 전달 장 입니다.

형식 처리기는 매개 변수의 한정자입니다. 이것은 모든 매개 변수에 사용되지만, Mybatis는 기본 매핑 유형 => typeHandler에 따라 일치하는 매개 변수 유형을 사용하도록 형식 핸들러를 해결하므로 일반적으로 지정되지 않습니다. TypeHandler는 일반적으로 사용자 정의 유형 핸들러를 사용하여 복잡한 유형의 특정 비헤이비어를 처리하도록 지정됩니다. 내가 참조 대답에

, 나는 정확히 OP의 상황에 대한 해결책을 제공하지 않고, 모든 조각을 함께 넣어 :

Type handler example 오라클 DB에 SQL의 배열을 전달에 관한 것입니다. 그렇다면 해결 방법은 SQL-Server 테이블 반환 매개 변수을 전달하는 것입니다.

+0

어제 제가 검색 할 때이 솔루션을 보았습니다. 예, DB는 SQL 서버입니다. 그리고 절차를 수행 한 xml 섹션을 완전히 이해하고 목록을 건네 줄 수 있습니다. 이 타입 핸들러를 작성하는 방법을 모르겠습니다. 내가 그것을 List에 쓸 수 있습니까? 나는 "item"클래스를 위해 그것을 쓴다? 아마 둘 다 할 수 있을까요? – IWishIWasABarista

+0

다른 사람의 질문에 대한 예에서 뭔가 빠졌습니까? 타입 핸들러가 어떻게 작동하는지 전혀 모르겠습니다. – IWishIWasABarista

관련 문제