java在Hibernate中需要帮助
下面是表格
CREATE TABLE MyTable(
'a_id' varchar(50) NOT NULL,
'b_id' varchar(100) NOT NULL,
'my_field' varchar(1) DEFAULT '0',
PRIMARY KEY ('a_id','b_id'));
价值观将是
a_id - b_id - my_field
aa - b1 - N
aa-b2-N
aa-b3-Y
aa-b5-N
pp-q1-Y
pp-q2-N
pp-q3-N
pp-q4-B
我想要两个Java bean作为
Pojo1。爪哇
private String aId
private List<Pojo2> pojo2
Pojo2。爪哇
private String bId
private boolean myField
我想为给定的b_id检索a_id(我可以检索这个)
我想检索单个a_id
的pojo2
列表(对此有问题)
我的Java代码
[b]java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to pojo2[/b]
try {
session = // create Hibernate session;
String query = "select x.bId,x.myField from MyTable x where x.aId=?";
Query queryObj = session.createQuery(query);
queryObj.setString(0, "value to aId");
Pojo2 mypojo2 = (Pojo2) queryObj.list();
} catch (Exception e) {
} finally {
close the connection
}
下面是MyTable
的hibernate文件
<hibernate-mapping auto-import="true" default-lazy="false">
<class name="com.db.beans.MyTable" table="MYTABLE">
<composite-id>
<key-property name="aId" type="string" column="a_id" length="100"/>
<key-property name="bId" type="string" column="b_id" length="100"/>
</composite-id>
<property name="myField" type="string" column="my_field" length="1" />
</class>
</hibernate-mapping>
请帮助更正我的映射文件或Java代码
# 1 楼答案
queryObj.list()
返回一个列表。你不能把一张单子投给一个Pojo2。如果您的查询和映射是正确的,那么您将能够使用