2012-06-06 29 views
0

我正在使用休眠和REST服務。看下面的代碼REST SERVICE,在這種情況下如何使用HQL語句(Hibernate查詢)提取content_id?如何從REST路徑提取查詢參數?

e.g我嘗試......

<query cache-mode="get" cacheable="true" flush-mode="auto" 
name="Languages.getLanguageById" read-only="true"> 
select languageId as id,displayName as name from Languages where id=<query-param name="languageId" type="java.lang.Long"/> 
</query> 

// REST服務

@Path("{resource}/getLanguageById") 

@GET 
@Produces(MediaType.TEXT_XML) 
public String getLanguageById(@PathParam("resource") String id, 
           @QueryParam("content-id")String content_id) 
{ 

      ........ 
      ....... 

} 

// Hibernate的XML

<hibernate-mapping> 
<class catalog="CONTENT" name="test.db.com.Languages" table="languages"> 
    <id name="languageId" type="java.lang.Long"> 
    <column name="languageId"/> 
    <generator class="identity"/> 
    </id> 
    <property generated="never" lazy="false" name="language" type="string"> 
    <column length="50" name="language" not-null="true"/> 
    </property> 
    <property generated="never" lazy="false" name="displayName" type="string"> 
    <column length="50" name="displayName" not-null="true"/> 
    </property> 
</class> 
</hibernate-mapping> 

回答

0

沒關係我找到了一個替代的解決方案

public static List listObject1(String queryname,Long content_id) { 
     String query = "select languageId as id,displayName as name from Languages where id =:query_id"; 
     Transaction tx = null;  

     Session session = SessionFactoryUtil.getInstance().openSession(); 
     Query myquery = session.createQuery(query); 
     myquery.setParameter("query_id",content_id); 

...... 

.......more code 
    }