2016-08-03 23 views
0

に結果としてInteger.classを取得:Javaで私はNamedNativeQueryを持つエンティティ(StockKeepingUnit)を持っているNamedNativeQuery

@NamedNativeQuery(name = StockKeepingUnit.NQ_FINDBY_ARTICLE_AND_SIZE, resultClass = StockKeepingUnit.class, hints = { 
     @QueryHint(name = "org.hibernate.cacheable", value = "false"), 
     @QueryHint(name = "org.hibernate.fetchSize", value = "1"), 
     @QueryHint(name = "org.hibernate.readOnly", value = "true") }, query = "SELECT * " 
      + "FROM StockKeepingUnit sku " + "WHERE sku.article = :articleNumber " 
      + "AND sku.size = :size " + "AND sku.deleted = 0") 

コール:このクエリでは

Query query = em.createNamedQuery(StockKeepingUnit.NQ_FINDBY_ARTICLE_AND_SIZE); 
query.setParameter(StockKeepingUnit.NQ_PARAM_ARTICLE_NR, articleNumber); 
query.setParameter(StockKeepingUnit.NQ_PARAM_SIZE, size); 

return (StockKeepingUnit) query.getSingleResult(); 

私はsku.stockKeepingUnitNumberを選択しますこのクエリを実行すると結果としてInteger-Valueを取得します。

私はこのような何かを試してみましたが、これは動作しませんでした... Javaで

@NamedNativeQuery(name = StockKeepingUnit.NQ_FINDBY_ARTICLE_AND_SIZE, resultClass = Integer.class, hints = { 
     @QueryHint(name = "org.hibernate.cacheable", value = "false"), 
     @QueryHint(name = "org.hibernate.fetchSize", value = "1"), 
     @QueryHint(name = "org.hibernate.readOnly", value = "true") }, query = "SELECT sku.stockKeepingUnitNumber " 
      + "FROM StockKeepingUnit sku " + "WHERE sku.article = :articleNumber " 
      + "AND sku.size = :size " + "AND sku.deleted = 0") 

コール:

Query query = em.createNamedQuery(StockKeepingUnit.NQ_FINDBY_ARTICLE_AND_SIZE); 
query.setParameter(StockKeepingUnit.NQ_PARAM_ARTICLE_NR, articleNumber); 
query.setParameter(StockKeepingUnit.NQ_PARAM_SIZE, size); 

return (Integer) query.getSingleResult(); 

誰も私を助けることができますか?

+1

でこのマッピングを参照することができNamedQueryで:-)

@SqlResultSetMapping(name = StockKeepingUnit.NQ_FIND_ONLY_SKU, columns = { @ColumnResult(name = StockKeepingUnit.NQ_RESULT_SKU_NAME)} 

をResultSetMapping問題のウィットを解決?何か例外がありましたか? –

答えて

0

私はあなたが属性

それがうまくいかなかったのはなぜ
@NamedNativeQuery(name = StockKeepingUnit.NQ_FINDBY_ARTICLE_AND_SIZE, resultSetMapping = StockKeepingUnit.NQ_FIND_ONLY_SKU, query = "SELECT sku.stockKeepingUnitNumber as " 
      + StockKeepingUnit.NQ_RESULT_SKU_NAME 
      + " FROM StockKeepingUnit sku " + "WHERE sku.article = :articleNumber " 
      + "AND sku.size = :size") 
関連する問題