2011-10-25 2 views
2

myBatis 3에서 단일 결과를 여러 객체에 매핑하여 객체가 모두 동일한 인스턴스를 참조하도록 할 수 있습니까? 제가 참조 할 수있는 예가 있습니까?myBatis 결과를 여러 객체에 매핑하는 방법은 무엇입니까?

자세한 내용 추가 업데이트

: 이제 내 DB에서 내 응용 프로그램에 대한 Contact들에 관한 정보를 저장한다고 가정 해 봅시다 예를 들어

합니다. 이 연락처의 동일한 인스턴스를 매핑의 MyBatis를 사용하는 것이 가능하다면 내가 알고 싶은, 말하는 Listing 클래스는 보유 이는 Contact :

public class Listing { 
    private Contact myContact; 
    //getters & setters... 
} 

뿐만 아니라도를 유지하는 ContactsHolder 클래스에 관해서 Contact :

public class ContactsHolder { 
    private Contact aContact 
    //getters & setters... 
} 

나는 동일한 인스턴스로 모두 ListingContactsHolder 클래스의 MyBatis로 매핑되는 객체가 필요합니다. 이것이 가능한가?

+0

해결하려는 문제에 대한 자세한 정보를 제공 할 수 있습니까? MyBatis 3의 결과 매핑은 매우 강력합니다. – Andy

+0

@AndyPryor : 해결하고자하는 문제에 대한 자세한 질문을 업데이트했습니다. 이게 내가하는 일을 분명히하는 데 도움이되기를 바랍니다. 감사! – holic87

+0

"리스팅"의 인스턴스를 가져 오려고하고 "ContactsHolder"의 인스턴스가 하나의 데이터베이스 호출입니까? – Andy

답변

1

아니요, MyBatis는 표준 결과 매핑을 사용하여 해당 작업을 수행 할 수 없습니다. (적어도 내 지식에). "연락처"개체를 선택한 다음 연락처를 참조하는 두 사람 모두 수동으로 목록 및 ContactsHolder를 작성할 수 있습니다.

또는 사용자 정의 ResultSetHandler를 구현하십시오.

일종의 특이한 요청인데 왜 두 인스턴스에서 동일한 인스턴스를 공유해야하는지 잘 모르겠습니다. 아마 MyBatis 3에는 이와 같은 기능이 없습니다.

+0

BTW, myBatis 플러그인을 사용하여이 문제를 해결할 수있었습니다 (17 페이지의 [User Guide] (http://code.google.com/p/mybatis/downloads/detail?name=MyBatis-3-User- Guide.pdf & can = 3 & q = Docs))를 호출하고'ResultSetHandler' 클래스의'handleResultSets' 메쏘드를 가로 챈 것입니다. 결과 세트에 포함 된 것과 같은'Contact' 인스턴스를'List'와'ContactsHolder' 클래스에 모두 추가 할 수있었습니다. – holic87

+0

좋은 아이디어, 반영 할 답변을 업데이트하겠습니다. – Andy

관련 문제