2012-08-09 43 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