2014-06-09 2 views
0

를 사용하지 않는, 내가 gestting있어이 오류 : java.lang.ClassCastException가 : 문제는 OperationalPostBOjava.lang.ClassCastException가 : ArrayList를 호환/ArrayList를 최대 절전 모드 및 GenericDAO 인터페이스를 사용하여

와 호환 인 java.util.ArrayList 이 코드 줄에서 : OperationalPostBO operationalPostBO = operationalPostDAO.findOperationalPostByOpCode (opCode);

문제는 다음과 같습니다. 모든 코드에서 arrayList를 사용하지 않습니다. java.util.Set 만 사용하고 Hashset에서 구현합니다.

HBM 파일 : `

<property name="opCode" column="OPCODE" type="string" /> 
    <property name="label" column="LABEL" type="string" /> 
    <property name="type" column="TYPE" type="string" /> 

    <set name="portfolioList" cascade="all"> 
     <key> 
      <column name="OPERATIONALPOST_OID" /> 
     </key> 
     <one-to-many class="PortfolioBO" /> 
    </set> 

    <many-to-one name="structureElement" class="StructureElementBO" column="STRUCTUREELEMENT_OID" /> 

</class> 
<query name="OperationalPostBO.findOperationalPostByOpCode"> 
    <![CDATA[select o from OperationalPostBO o where o.opCode = ?]]> 
</query> 

`

+0

"나는 내 모든 코드에 어떤의 ArrayList를 사용하지 않는"은 - 나는이 – NimChimpsky

+0

이 응답 @NimChimpsky 주셔서 감사합니다 false입니다 생각한다. 나는 전체 프로젝트를 검색했는데 어떤 "arraylist"도 찾지 못했습니다. "operationalPost.hbm.xml"에서도 을 사용하고 있습니다. 또한 "find"메서드는 목록을 반환하지도 않고 하나의 항목을 반환한다고 가정합니다. – user2685464

+0

findOperationalPostByOpCode() – NimChimpsky

답변

0
<query name="OperationalPostBO.findOperationalPostByOpCode"> 
    <![CDATA[select o from OperationalPostBO o where o.opCode = ?]]> 
</query> 

이리스트를 돌려줍니다.

PortfolioList (사실 세트입니다)는 다른 것입니다.

그래서 같은 :

Collection<OperationalPostBO> operationalPostBOs = operationalPostDAO.findOperationalPostByOpCode(opCode); 
+0

네가 맞습니다. 그러나 "OperationalPostBO"에 중첩 된 목록입니다. 해결책은 무엇입니까? – user2685464

+0

List not a Set 또는 Collection even이라는 참조를 만듭니다. 편집 – NimChimpsky

+0

을 참조하십시오. 감사합니다! 그게 내 문제를 해결 했어! – user2685464