使用Hibernate和GenericDAO接口,我得到这个错误:java.lang.ClassCastException: java.util.ArrayList与OperationalPostBO不兼容
问题在这行代码中:OperationalPostBO = operationalPostDAO.findOperationalPostByOpCode(opCode);
问题是:我没有在我所有的代码中使用任何arrayList。我只使用java。util。集合,并通过Hashset实现。
hbm file:`
<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>
"
<query name="OperationalPostBO.findOperationalPostByOpCode">
<![CDATA[select o from OperationalPostBO o where o.opCode = ?]]>
</query>
返回一个列表
PortfolioList(实际上是一个集合)是另一回事。
比如:
Collection<OperationalPostBO> operationalPostBOs = operationalPostDAO.findOperationalPostByOpCode(opCode);