有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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_idpojo2列表(对此有问题)

我的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) 个答案

  1. # 1 楼答案

    queryObj.list()返回一个列表。你不能把一张单子投给一个Pojo2。如果您的查询和映射是正确的,那么您将能够使用

    Pojo2 mypojo2 = (Pojo2) (queryObj.list().get(0));