データベースのクエリとリストへのデータの追加に使用するコードを以下に示します。
Query q= session.createQuery("select tally_receipt_prefix, tally_receipt_no, tally_head, tally_amount from Tally_table where tally_system_date='"+fmtd_date+"' and tally_dbcr_indicator='DB' and tally_mode='Ca' order by tally_head,tally_receipt_prefix,tally_receipt_no");
payincash = new ArrayList();
for(Iterator it=q.iterate(); it.hasNext(); )
{
Object[] row= (Object[]) it.next();
payincash.add((String)row[0]);
payincash.add((String)row[1]);
payincash.add((String)row[2]);
payincash.add((String)row[3]);
}
System.out.println("cash list in dao: "+payincash);
返されるリストは [prefix1, no1, head1, amt1, prefix2, no2, head2, amt2,] のようになります。次の行でjspで領収書を作成しようとしています
頭1
prefix1/no1 amt1
prefix2/no2 amt 2
頭3
prefix3/no3 amt3
そのため、領収書のヘッダー列ですべてのレコードをグループ化したいようです-jspファイル。どうすればいいですか?どんな助けでも大歓迎です。私の英語を許してください。
編集:これが私が試したものです、
Query q= session.createQuery("selecttally_receipt_prefix,tally_receipt_no,tally_head,tally_amount from Tally_table wheretally_system_date='"+fmtd_date+"' andtally_dbcr_indicator='DB' andtally_mode='Ca' order bytally_head,tally_receipt_prefix,tally_receipt_no"); System.out.println("クエリ"+q);
List heads=new ArrayList();
for(Iterator it=q.iterate(); it.hasNext(); )
{
Object[] row= (Object[]) it.next();
payincash1=new LinkedHashMap<String, List>();
heads.add((String)row[2]);
List tails = null;
tails=new ArrayList();
tails.add((String)row[0]);
tails.add((String)row[1]);
tails.add((String)row[3]);
System.out.println("heads in dao from iter 1: "+heads);
System.out.println("tails in dao from iter1 on: "+tails);
if(heads.contains((String)row[2])) // for head in temp list
{
System.out.println("in first if");
if(payincash1.containsKey((String)row[2]))
{
System.out.println("map if repeat: "+payincash1);
payincash1.put((String)row[2],tails);
}
}
else
{
System.out.println("map if not repeat: "+payincash1);
payincash1.put((String)row[2], tails);
}
}