从映射为数组的列中检索数据

时间:2012-08-09 11:51:17

标签: hibernate mapping hql hibernate-mapping

我正在使用hibernate映射,如下所示:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
      <class entity-name="TestClass.TestClass" table="TestClass">
        <id name="id" type="integer" unsaved-value="any">
          <column name="TestClassId" not-null="true" />
          <generator class="assigned" />
        </id>

        <array name="arrayProp " table="arrayProp ">
          <key column="id" />
          <index column="ordre" />
          <element column="arrayItem" type="string" />
        </array>

     </class>
    </hibernate-mapping>

现在我想检索存储在arrayProp中的te元素, 我写了这个查询:

select arrayProp from TestClass

我得到的只是:

 Wrapped Exception: No data type for node: org.hibernate.hql.ast.tree.IdentNode 
     \-[IDENT] IdentNode: 'arrayProp' {originalText=arrayProp}

任何人都知道如何从arrayProp中检索数据,而不是帮助?

1 个答案:

答案 0 :(得分:0)

尝试使用查询:

String queryText = "select tableClass.arrayProp from TableClass";
Query query = session.createQuery(queryText);

然后,当你使用query.list()时,我认为你得到了List(或者像JPA中的List,我不确定)。如果你将getList,那么Object []数组的第一个元素将是你的字符串数组String []。