Struts 2选择和区分选择项目

时间:2013-03-14 10:59:53

标签: java hibernate struts2 hql

我有ArrayList empDetail类型(POJO类)。

List<EmpDetail> empDetailList = new ArrayList<EmpDetail>();

此列表表示数据库中的表。 我需要下拉列表的值,所以我做了

<s:select list="empDetailList" listKey="country"  listValue="country" name="country"></s:select> 

通过这个我从数据库获得所有国家列的行和它的好。但是我在这个下拉列表中需要一个独特的国家。

我知道我可以编写一个SQL查询来获取不同的国家/地区,但是如何在这种情况下执行此操作。

更新1: 你们中的任何一个人都有Hibernate解决方案吗?

更新2:  我的POJO课程如下......

package bean;

import java.io.Serializable;
import java.sql.Date;


public class EmpDetail implements Serializable{

    private static final long serialVersionUID = 1L;

    private Long     id;
    private String   name;
    private int  age;
    private String   address;
    private String   city;
    private String   section;
    private String   country;
    private String   classStudying;
    private String   fatherName;
    private String   motherNmae;
    private Date     DOJ;
    private String   certificates;
    private Date     CompletedDate;
    private String   crossCheckedBy;
    private Date     crossCheckedDate;
    private String   comments;


    //and its getters and setters...


}

2 个答案:

答案 0 :(得分:0)

您需要按国家/地区对象进行分组。简单的HQL查询

from EmpDetail where id in (select max(id) from EmpDetail group by country)

答案 1 :(得分:0)

如果要显示不同的选择项,则意味着

 EmpDetail empDetail = new EmpDetail();
 Map<Object, Object> empDetailMap = new LinkedHashMap<Object, Object>();
    if (empDetailList.size() > 0) {
        for (Iterator<EmpDetail> iter = industryDetail.iterator(); iter.hasNext();) {
            empDetail = (EmpDetail) iter.next();
            empDetailMap.put(empDetail.getId(),empDetail.getName());
        }
    }