[英]retrieve value from One-To-Many relationship Hibernate Without HQL
我只是嘗試從Hibernate中的“一對多”關系中檢索一個值。 但是我堅持獲取價值。
這是方案-有中心和工作人員。 中心就像辦公室的分支。 並且有一名職員分配到中心,一名職員可以分配更多的中心。
有三個表,分別稱為“中心”,“工作人員”和“ centerhasstaff”。 這是表格的結構ER圖片
我需要從通過搜索中心分配給中心的職員表中獲取“姓名”。
這是我的POJO文件
Center.java
private Integer idCenter;
private Branch branch;
private String centerName;
private String centerDay;
private String centertime;
private String isApprove;
private String isActive;
private String createdBy;
private String centerNo;
private Set centerHasStaffs = new HashSet(0);
CenterHasStaff.java
private Integer idcenterHasStaff;
private Center center;
private Staff staff;
Staff.java
private Integer idStaff;
private String nic;
private String licenceNo;
private String name;
private String address1;
private String address2;
private String city;
private Set centerHasStaffs = new HashSet(0);
這是我嘗試在JSP頁面上檢索人員名稱的方法。
<%
int i = 1;
Session ss = DB.getSession();
Criteria crr = ss.createCriteria(Center.class);
crr.add(Restrictions.eq("isActive", "Active"));
crr.add(Restrictions.eq("isApprove", "Approve"));
List<Center> li = crr.list();
for (Center el : li) { %>
<tr>
<th scope="row"><%= i++ %></th>
<td><%= el.getCenterNo() %></td>
<td><%= el.getCenterName() %></td>
<td><%= el.getCenterDay() %></td>
<td><%= el.getCentertime() %></td>
<td><%= el.getCenterHasStaffs() %></td>
<td><%= el.getCreatedBy() %></td>
<td>OK</td>
</tr>
<% }%>
這是我的結果集
**
有沒有辦法在不使用HQL的情況下將職員姓名分配給中心?
**
查看結果集和對象圖,這將返回一個列表
<td><%= el.getCenterHasStaffs() %></td>
假設中心分配了1名員工,那么您可以從列表中獲取第一項
<td><%= el.getCenterHasStaffs().get(0).getName() %></td>
我剛剛找到了解決我的問題的方法。 這是更好的方法嗎?
<%
Iterator it = el.getCenterHasStaffs().iterator();
while (it.hasNext()) {
CenterHasStaff elem = (CenterHasStaff) it.next();
out.print(elem.getStaff().getNameWithinitials());
}
%>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.