2012-08-09 83 views
0

我使用休眠映射如下列數據:檢索從該映射爲陣列

<?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數據,感謝名單 求助?

回答

0

嘗試使用查詢:

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

然後,當你將使用query.list()我想你列表(或列表像JPA,我不知道)。如果你將getList,那麼Object []數組的第一個元素將是你的字符串String []的數組。

+0

thx @dimas, 我試過使用表名和表別名,但它不會工作。 我想我需要使用TestClass表和arrayProp之間的連接 – vivo 2012-08-09 12:20:57