我目前正在使用Hibernate Framework项目从Netbeans IDE检索数据库中的值并将其显示在表结构中。我已经创建了与数据库表和控制器方法的映射来检索值。显示在JSP上通过查询返回的项目列表
我对hibernate框架相当陌生,不太清楚如何显示在我的Role.jsp
视图中从RoleController.java
传递的角色列表。在这方面的任何建议将不胜感激。
RoleController.java
package management;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
/**
*
* @author Taro
*/
@Named(value = "roleController")
@ManagedBean
@SessionScoped
public class RoleController implements Serializable {
int employeeId;
DataModel roleTitles;
String roleTitle;
RoleHelper helper;
public RoleController() {
helper = new RoleHelper();
}
public DataModel getRoleTitles() {
if (roleTitles == null) {
System.out.println("Successful");
roleTitles = new ListDataModel(helper.getRoleTitles());
}
return roleTitles;
}
}
Roles.jsp
<div class="content">
<div class="container-fluid">
<div class="row">
<div class="col-md-8">
<div class="card">
<div class="header">
<h4 class="title">Available Roles</h4>
<p class="category">A list of Role Titles</p>
</div>
<div class="content">
<!--Display table of roles with an edit button against each role-->
</div>
</div>
</div>
...
RoleHelper.java
public class RoleHelper {
Session session = null;
public RoleHelper() {
this.session = HibernateUtil.getSessionFactory().getCurrentSession();
}
/*
* Method : getRoleTitles
* @description Retrieve all the unique role titles
*/
public List getRoleTitles() {
List<Role> roleList = null;
try {
org.hibernate.Transaction tx = session.beginTransaction();
Query q = session.createQuery ("select distinct role.title from Role as role");
roleList = (List<Role>) q.list();
} catch (Exception e) {
e.printStackTrace();
}
return roleList;
}
...
Role.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated Oct 21, 2017 1:12:44 PM by Hibernate Tools 4.3.1 -->
<hibernate-mapping>
<class name="management.Role" table="ROLE" schema="APP" optimistic-lock="version">
<id name="roleid" type="int">
<column name="ROLEID" />
<generator class="assigned" />
</id>
<property name="employeeid" type="java.lang.Integer">
<column name="EMPLOYEEID" />
</property>
<property name="title" type="string">
<column name="TITLE" length="40" />
</property>
</class>
</hibernate-mapping>
Role.java
public class Role implements java.io.Serializable {
private int roleid;
private Integer employeeid;
private String title;
public Role() {
}
public Role(int roleid) {
this.roleid = roleid;
}
public Role(int roleid, Integer employeeid, String title) {
this.roleid = roleid;
this.employeeid = employeeid;
this.title = title;
}
public int getRoleid() {
return this.roleid;
}
public void setRoleid(int roleid) {
this.roleid = roleid;
}
public Integer getEmployeeid() {
return this.employeeid;
}
public void setEmployeeid(Integer employeeid) {
this.employeeid = employeeid;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
}