2016-05-09 64 views
-2

我有如下圖所示檢索列表中的第一個項目,它在轉換INT

public class BrokerInvoiceLineItem { 


    private int attachmentCount; 

public int getAttachmentCount() { 
     return attachmentCount; 
    } 

    public void setAttachmentCount(int attachmentCount) { 
     this.attachmentCount = attachmentCount; 
    } 
} 

在XML命名查詢下列類是

<sql-query name="attachmentQuery"> 
    <![CDATA[select count(iilnmp.INV_LINE_NOTE_ID) from IOA_INV_LINE_NOTE_MAP iilnmp , 
               IOA_INVOICE_LINE_NOTES iiln , IOA_INVOICE_LINE iil 
               where iilnmp.INV_LINE_NOTE_ID = iiln.ID and iiln.INLI_ID =iil.id and iil.ID = ?]]> 
</sql-query> 

現在下面是操作的是我我正在做索引0的列表中的位置我正在檢索值,但我得到一個編譯錯誤,因爲我需要將存儲在索引0的值轉換爲int類型,那麼只有我將能夠設置 請告知我該如何實現同樣的

Query query = session.getNamedQuery("attachmentQuery"); 
       query.setParameter(0, itrBrokerInvoiceLineItem.getId()); 
       List attachCount = query.list(); 
       if (attachCount != null && attachCount.size() > 0) { 
        if (attachCount.get(0) != null) { 
         itrBrokerInvoiceLineItem.setAttachmentCount(attachCount.get(0)); 
        } 
       } 

是我得到的編譯錯誤是The method setAttachmentCount(int) in the type BrokerInvoiceLineItem is not applicable for the arguments (Object)

我已經編輯我的問題,請爲我使用休眠3.1中query.getsingleresult方法是不是有請指教

+0

確切在哪裏是錯誤?什麼是堆棧跟蹤? – Idos

+0

指定查詢的外觀如何? –

+0

你已經在raw類型中創建了一個'List'(類型爲'Object'),並且你試圖從'int'類型中存儲一個值。這是不允許的。我不知道'Query.list()'返回什麼值,但是嘗試使用菱形運算符聲明你的列表('List ')。 – Lefteris008

回答

0

如果我理解你的在執行查詢後詢問你想要的第一個結果。 所以,我寧願你用query.getSingleResult()來處理異常,而不是query.list()。這將返回Object


(編輯後) 它似乎是你想要基於一些參數計數。 因此,我會更喜歡你在名稱查詢與此

<sql-query name="attachmentQuery"> 
    <![CDATA[select * from IOA_INV_LINE_NOTE_MAP iilnmp , 
               IOA_INVOICE_LINE_NOTES iiln , IOA_INVOICE_LINE iil 
               where iilnmp.INV_LINE_NOTE_ID = iiln.ID and iiln.INLI_ID =iil.id and iil.ID = ?]]> 
</sql-query> 

更改然後用query.list().getSize()將返回int

1

更換

List attachCount = query.list(); 

有了這個

List<Integer> attachCount = (List<Integer>) query.list(); 
+0

您不能在鑽石操作員中使用基本類型。相反,使用'Integer'類型。 – Lefteris008

+0

你是錯誤的 –

相關問題