0

私には2つのエンティティがあり、meetingとmeetingAgendaのエンティティです。

このようにデータベースからコードエンティティクラス(EJB)を記述します。

public class Meeting implements Serializable {
......
 @XmlTransient
    public Collection<MeetingAgenda> getMeetingAgendaCollection() {
        return meetingAgendaCollection;
    }

    public void setMeetingAgendaCollection(Collection<MeetingAgenda> meetingAgendaCollection) {
        this.meetingAgendaCollection = meetingAgendaCollection;
    }
.......
}

そして、このようなエンティティクラスの会議の議題。....。

public class MeetingAgenda implements Serializable {
....
    public String getAgenda() {
        return agenda;
    }
    public void setAgenda(String agenda) {
        this.agenda = agenda;
    }
....
}

メソッドgetMeetingAgendaCollectionは、会議エンティティからのリレーションです。次に、コントローラサーブレットでこのようにEJBを呼び出します。

public class ControllerServlet extends HttpServlet {
    @EJB
    private RapatFacadeLocal rapatFacade;

public void init() throws ServletException { 
        // store category list in servlet context      
   getServletContext().setAttribute("meetings", rapatFacade.findAll());
}
......

テーブルエンティティmeetingおよびmeetingAgendaからのデータを表示したいのですが、できません。助けてください。

私はJSPページにコードを書きます..このように..

 <c:forEach var="meeting" items="${meetings}">
<td> MeetingCode :  ${meeting.meetingCode} </td>
<td> Meeting :  ${meeting.meeting} </td>
<td> Agenda :  ${meeting.getMeetingAgendaCollection} </td> 
</c:forEach>

getMeetingAgendaCollectionを使用してデータアジェンダを表示するにはどうすればよいですか????

ご協力いただきありがとうございます。

4

1 に答える 1

0

コントローラーサーブレットで、ようやく解決策を見つけました

  Rapat selectedMeeting = rapatFacade.find(Long.parseLong(id));
                     request.setAttribute("meetingDetails",selectedMeeting); 


  Collection<RapatAgenda> agenda = selectedMeeting.getRapatAgendaCollection();
                     request.setAttribute("meetingAgendas", agenda); 

私のJSPクライアントで

.... 
<c:forEach var="agenda" items="${meetingAgendas}"> 
  <td> ${agenda.agenda}  </td>
 </c:forEach>
...

しかし、さらに問題が見つかりました。エンティティの会合に関連する別のエンティティ (1 対多) を表示したい場合。私はこのようなコードを書きます。

Rapat selectedMeeting = rapatFacade.find(Long.parseLong(id));
                     request.setAttribute("meetingDetails",selectedMeeting); 

 Collection<RapatAgenda> agenda = selectedMeeting.getRapatAgendaCollection();
                     request.setAttribute("meetingAgendas", agenda);

 Unit selectUnit = unitFacade.find(selectedMeeting.getUnitInisiatorId());
                     request.setAttribute("initiator", selectUnit);

selectedMeeting.getUnitInisiatorId() の値が integer になることはありません。手動で記述した場合、

Unit selectUnit = unitFacade.find(Long.parseLong(1));
                         request.setAttribute("initiator", selectUnit);

問題が解決しました..

what selectedMeeting.getUnitInisiatorId() syntax is correct ..?

助けてください..ありがとう..

于 2012-12-16T03:24:58.793 に答える