Java JSF数据表逻辑:我正在从数据库中检索同一实体的多行;然而,我只想展示一个

Java JSF数据表逻辑:我正在从数据库中检索同一实体的多行;然而,我只想展示一个,java,sql,jsf,datatable,xhtml,Java,Sql,Jsf,Datatable,Xhtml,我正在从数据库中检索一个数据表,如下所示: <h:dataTable value="#{employeeWiseReportBean.empWiseList}" var="u" rendered='true' styleClass="infoTable" headerClass="dataTableHeader" rowClasses="dataTableRow"> <h:column&

我正在从数据库中检索一个数据表,如下所示:

 <h:dataTable value="#{employeeWiseReportBean.empWiseList}" var="u" rendered='true'
                     styleClass="infoTable" headerClass="dataTableHeader"   rowClasses="dataTableRow">

                     <h:column>
                        <f:facet name="header">
                        Employee ID
                        </f:facet>   
                         #{u.empID}   
                    </h:column>

                         <h:column>
                        <f:facet name="header">
                        First Name
                        </f:facet>   
                         #{u.fullName} 
                    </h:column>

                         <h:column>
                        <f:facet name="header">
                        Designation
                        </f:facet>   
                       #{u.designation}
                    </h:column>

                            <h:column>
                        <f:facet name="header">
                        Task ID
                        </f:facet>   
                         #{u.subTaskID}
                    </h:column>

                         <h:column>
                        <f:facet name="header">
                        Task Description
                        </f:facet>   
                         #{u.taskDescription}
                    </h:column>

                   <h:column>
                        <f:facet name="header">
                        From
                        </f:facet>   
                         #{u.fromDate}
                    </h:column>

                   <h:column>
                        <f:facet name="header">
                        TO
                        </f:facet>   
                         #{u.toDate}
                    </h:column>

                     </h:dataTable>
!![1] :

正如你所看到的,我有相同的EmpName,EmpID,名称重复。这是因为同一个人有那么多的任务分配给他。 为了使它看起来更美观,我希望EmpID、姓名、名称只打印一次,而特定员工的其余行打印次数与db中的相同

我的数据表如下所示:

 <h:dataTable value="#{employeeWiseReportBean.empWiseList}" var="u" rendered='true'
                     styleClass="infoTable" headerClass="dataTableHeader"   rowClasses="dataTableRow">

                     <h:column>
                        <f:facet name="header">
                        Employee ID
                        </f:facet>   
                         #{u.empID}   
                    </h:column>

                         <h:column>
                        <f:facet name="header">
                        First Name
                        </f:facet>   
                         #{u.fullName} 
                    </h:column>

                         <h:column>
                        <f:facet name="header">
                        Designation
                        </f:facet>   
                       #{u.designation}
                    </h:column>

                            <h:column>
                        <f:facet name="header">
                        Task ID
                        </f:facet>   
                         #{u.subTaskID}
                    </h:column>

                         <h:column>
                        <f:facet name="header">
                        Task Description
                        </f:facet>   
                         #{u.taskDescription}
                    </h:column>

                   <h:column>
                        <f:facet name="header">
                        From
                        </f:facet>   
                         #{u.fromDate}
                    </h:column>

                   <h:column>
                        <f:facet name="header">
                        TO
                        </f:facet>   
                         #{u.toDate}
                    </h:column>

                     </h:dataTable>
我知道它为什么要打印这么多实例,但我不明白如何让它只打印一个实例

我使用的查询和结果集如下所示:

   public List<EmployeeDutySchedule> getEmpWiseDB()
{
     List<EmployeeDutySchedule> empDutyList=new ArrayList<EmployeeDutySchedule>();

   ResultSet rs=null;
   String query="Select employee_duty_schedule.emp_id, first_name, last_name,  emp_designation, task_allocated_id, description, from_date, to_date\n" +
" FROM transport_department_schema.employees_information,  transport_department_schema.employee_duty_schedule, transport_department_schema.m_subtasks\n" +
" Where employees_information.emp_id=employee_duty_schedule.emp_id AND  employee_duty_schedule.task_allocated_id=m_subtasks.subtask_id  ;\n" +
"\n" +
"";
    System.out.println(query);
     rs=MyQueryExe.executeQuery(query);


            System.out.println("rs "+rs);
            try
        {
        while(rs.next())
        {
         EmployeeDutySchedule empDuty=new EmployeeDutySchedule(); 
          empDuty.setEmpID(rs.getString("emp_id"));
         empDuty.setFullName(rs.getString("first_name")+" "+rs.getString("last_name"));

         empDuty.setSubTaskID(rs.getString("task_allocated_id"));
         empDuty.setTaskDescription(rs.getString("description"));
         empDuty.setDesignation(rs.getString("emp_designation"));
         empDuty.setFromDate(rs.getDate("from_date"));
         empDuty.setToDate(rs.getDate("to_date"));

         empDutyList.add(empDuty);
            System.out.println("size of list  "+empDutyList.size());

          }
        }
        catch(SQLException e)
        {
            e.getStackTrace();
        }
        return empDutyList;
}
数据库表本身有多个empID条目,用于显示分配给特定员工的所有任务

任何帮助都将不胜感激!我希望我的问题足够清楚。
谢谢。

您的意思是,标题字符串Employee Id等正在重复,还是与每个员工相关的行数

在后一种情况下,请尝试将Distinct关键字添加到查询中:

 Select distinct employee_duty_schedule.emp_id, ................

您能用输出屏幕截图编辑您的问题吗?我不确定您所问的问题,但您可以在查询中使用distinct获得唯一的结果,这样您的值就不会重复。@Bhola阅读问题。明确提到,我希望只打印一次EmpID、姓名、名称,并打印特定员工的其他行,打印次数与db中相同。@sankrish well这在datatable中无法实现,因为每个条目都是一行,它将显示该特定行的所有数据。您不能操纵该行。@sankrish我首先添加了一个输出链接。请检查是的,我希望与每个员工相关的行只显示一次员工的姓名、id和名称;但是,我希望taskid、description、from和todate仅显示在不同的行中。