【发布时间】:2018-04-17 13:50:34
【问题描述】:
在执行userFacade.create(user) 时,我可以看到用户已在数据库中创建,但在我重新启动应用程序之前我无法使用该用户登录
或者如果我取消验证该会话(它在 sessionScoped 中)
其他示例:如果我创建一个 Cv 并将其添加到用户 CV,即使它在数据库中,我也无法获取使用 user.getListCvs() 创建的最后一个 cv,但如果我重新启动服务器,我可以看到它
这是创建当前用户简历的bean
public class CreerCV implements Serializable{
@EJB
private CvFacade cvFacade;
@EJB
CandidatFacade candidatFacade;
private Cv cv;
private Candidat candidat;
@PostConstruct
public void init(){
cv=new Cv();
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
candidat=(Candidat)session.getAttribute("membre");
candidat=candidatFacade.find(candidat.getId()); //so i can not get the listCVs of the my saved attribute in my session , but the listCVs of a user in the database ! This is the problem
}
//+getters and setters
public String creerCV(){
if(candidat!=null){
cv.setCandidat(candidat);
candidat.getListeCv().add(cv);
try{
cvFacade.create(cv);
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Création du cv avec succés"));
}catch(Exception e) {
System.out.println(e);
}
}
else
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Une erreur s'est produite",""));
return "/index.xhtml";
}
这是显示当前用户简历的bean
@Named
@RequestScoped
public class ListeCvs implements Serializable{
@EJB
private CvFacade cvFacade;
private List<Cv> listeCvs=new ArrayList<>();
private Cv selectedCv;
private Candidat candidat;
@PostConstruct
public void init(){
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
candidat=(Candidat)session.getAttribute("membre");
System.out.println(candidat.getListeCv());
if(candidat!=null)
listeCvs=candidat.getListeCv();
candidat=candidatFacade.find(candidat.getId());
}
//getters+setters ect..
示例:
我创建了一个简历,我刷新我看不到表中创建的简历! 我去数据库,我可以看到它已创建 我重新启动我的应用程序,我去我的桌子我可以在桌子上看到我的简历
我创建了第二个简历,我在表中看不到它,但我可以看到我创建的前一个,我看到它是在数据库上创建的,我重新启动我的应用程序转到我的表我可以看到我的 2 份简历!
PS:对于测试,我使用System.out.print 和一些dataTables 来查看列表
【问题讨论】:
标签: jpa