如何使用object的大小动态地在datatable中添加列

时间:2013-09-10 14:15:20

标签: hibernate jsf jpa

在我的项目中,我有一个Country课程和Language课程,他们之间有one-to-many个关系。我必须在登录用户的基础上显示所有语言。登录用户具有特定国家/地区。使用会话:

  1. 我必须在sessin中登录用户
  2. 使用会话获取相关联的国家/地区。
  3. 我已经为登录用户编写了检索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;
    }
    

1 个答案:

答案 0 :(得分:0)

首先,我不确定上面代码所在的层是什么,这是一个JSF托管bean还是什么?

如果它是JSF托管bean,您可以创建一个用户类来存储您想要的信息,但如果您只想在会话中保存 UserDetails 对象,您可以通过使用FacesContext来实现所以

FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("userInfo", getUserById("someId"));

您可以通过

检索会话信息
(UsersDetails)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("userInfo");