Jsf 2 在EJB3中插入数据(CRM多对多)
我已经创建了一个数据库。数据库有3个表 用户表:usernamePK,userpass 角色表:rolenamePK 用户角色表:来自用户和角色表的usernamePK、FK、rolenamePK、FK引用 然后,我创建了一个EJB3项目,包括每个表的实体和实体的会话bean 我使用了JSF2,我有一个ManageBean插入到这些表中 这是将数据传递给托管bean的页面Jsf 2 在EJB3中插入数据(CRM多对多),jsf-2,ejb,ejb-3.0,jsf-2.2,Jsf 2,Ejb,Ejb 3.0,Jsf 2.2,我已经创建了一个数据库。数据库有3个表 用户表:usernamePK,userpass 角色表:rolenamePK 用户角色表:来自用户和角色表的usernamePK、FK、rolenamePK、FK引用 然后,我创建了一个EJB3项目,包括每个表的实体和实体的会话bean 我使用了JSF2,我有一个ManageBean插入到这些表中 这是将数据传递给托管bean的页面 <h:form> <h:messages globalOnly="true"/>
<h:form>
<h:messages globalOnly="true"/>
<h:inputText id="username" value="#{addBean.username}"/>
<h:inputText id="password" value="#{addBean.userpass}"/>
<h:inputText id="rolename" value="#{addBean.rolename}"/>
<h:commandButton id="add" value="add" action="#{addBean.ADD()}"/>
</h:form>
数据传递到用户和角色表。但它不会将数据传递给用户角色表。
我使用GlassFish服务器4
任何建议。提前谢谢。
在创建前,请尝试移动“相加到”中的最后两行。它会引发异常NullPointerException
package demo;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
/**
*
* @author Sony
*/
@ManagedBean
@RequestScoped
public class AddBean {
@EJB
private UsersFacadeLocal usersFacade;
@EJB
private RolesFacadeLocal rolesFacade;
/**
* Creates a new instance of AddBean
*/
public AddBean() {
}
public void ADD()
{
Users u = new Users(username, userpass);
Roles r = new Roles(rolename);
usersFacade.create(u);
rolesFacade.create(r);
Users uC = usersFacade.find(username);
Roles rC = rolesFacade.find(rolename);
uC.getRolesCollection().add(rC);
rC.getUsersCollection().add(uC);
}
private String username;
private String userpass;
private String rolename;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpass() {
return userpass;
}
public void setUserpass(String userpass) {
this.userpass = userpass;
}
public String getRolename() {
return rolename;
}
public void setRolename(String rolename) {
this.rolename = rolename;
}
}