1

我正在使用 Struts 2.3.7、struts2-jquery-grid-plugin-3.5.0 和休眠 3.6。我想显示jqgrid来自两个不同表的数据。

我的问题是我必须在一个中显示两个表数据jqgrid。前三jqgrid列由Issue表填充,最后一列name="assignedTo"Issue_Tracker表填充。如何显示最后一列中的数据,即assignedTo。任何帮助都会被挪用。

我的 jqgrid 是

<sjg:grid
    id="gridtable"
    caption="Issue-Summary"
    dataType="json"
    href="%{remoteurl}"
    pager="true"
    gridModel="gridModel"
    rowList="10,15,20"
    rowNum="15"
    rownumbers="true"
    reloadTopics="reloadGrid"
>
    <sjg:gridColumn name="issue_id"  id="issueId"  index="id" title="Issue-ID" formatter="integer"  sortable="false"/>
    <sjg:gridColumn name="issue_description" index="id" title="Issue-Details"  sortable="false"/>
    <sjg:gridColumn name="issue_raised_date" index="date" title="Issue-Date"  formatter="date"  sortable="false"/>

    <sjg:gridColumn name="assignedTo"  index="assigned" title="Assigned To"  sortable="false"/>
</sjg:grid>

我有pojo的:

问题.java

public class Issue implements Serializable
{
private Integer issue_id;
private String  issue_description;
private Date issue_raised_date;

getters and setters

另一个pojo是

Issue_Tracker.java

public class Issue_Tracker implements Serializable
{  
     private Integer issue_id;
     private String assignedTo;

和My Dao如下显示jqgrid中的Issue列表

public List<Issue> showHelpDeskIssues(DetachedCriteria dc, int from, int size)
{

    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
     try
      {

        Criteria criteria = dc.getExecutableCriteria(session);
        criteria.setFirstResult(from);
        criteria.setMaxResults(size);
        criteria.add(Restrictions.eq("status","Escalate To"));

        return criteria.list();
      }
      catch (HibernateException e)
      {
        e.printStackTrace();
        throw e;
      }
}
4

2 回答 2

0

您可以使用两个表的组合列在 DB 中创建视图。为该视图创建 PoJo 和映射类并轻松执行!

于 2013-02-19T10:56:04.187 回答
0

您可以像这样在 pojo 中为另一个 pojo 创建一个集合

public class Issue implements Serializable
{
private Integer issue_id;
private String  issue_description;
private Date issue_raised_date;
private Set<Issue_Tracker> issue_Tracker;

public Set<Issue_Tracker> getIssue_Tracker() {
  return issue_Tracker;
}
public void setIssue_Tracker(Set<Issue_Tracker> issue_Tracker) {
  this.sidUserSites = issue_Tracker;
 }
}

现在您可以通过问题 pojo 访问 Issue_Tracker pojo。您需要使用连接查询

于 2013-01-08T10:22:18.387 回答