Hibernate 如何使用对象的大小在datatable中动态添加列
在我的项目中,我有一个Hibernate 如何使用对象的大小在datatable中动态添加列,hibernate,jsf,jpa,Hibernate,Jsf,Jpa,在我的项目中,我有一个国家类和语言类,它们之间有一对多关系。我必须根据登录用户显示所有语言。登录用户具有特定的国家/地区。使用会话: 我必须将登录用户放入会话 使用会话获取关联的国家/地区 我已经为登录用户编写了检索Country的查询,但我不知道如何将对象放入会话以及如何获取它 public UsersDetails getUserById(String loggedInUserEid) { UsersDetails user = null; try{ user =
国家
类和语言
类,它们之间有一对多
关系。我必须根据登录用户显示所有语言。登录用户具有特定的国家/地区。使用会话:
Country
的查询,但我不知道如何将对象放入会话以及如何获取它
public UsersDetails getUserById(String loggedInUserEid) {
UsersDetails user = null;
try{
user = entityManager.find(UsersDetails.class, loggedInUserEid);
if(user!=null){
System.out.println("userList.get(0).getFirstName()::"+user.getFirstName());
}
}catch(EntityNotFoundException enfEx){
System.out.println("LoggedIn User not found in DB");
}catch(Exception e){
e.printStackTrace();
}
System.out.println("UserDAOImpl.getUserById()::Exit");
return (null!=user) ? user : null;
}
首先,我不确定上面的代码驻留在哪一层,这是JSF管理的bean还是什么 如果它是一个JSF管理的bean,您可以创建一个用户类来存储您想要的信息,但是如果您只想在会话中保存UserDetails对象,您可以使用FacesContext这样做
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("userInfo", getUserById("someId"));
您可以通过以下方式检索会话信息:
(UsersDetails)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("userInfo");