Jsf 2 在EJB3中插入数据(CRM多对多)

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"/>

我已经创建了一个数据库。数据库有3个表

用户表:usernamePK,userpass 角色表:rolenamePK 用户角色表:来自用户和角色表的usernamePK、FK、rolenamePK、FK引用 然后,我创建了一个EJB3项目,包括每个表的实体和实体的会话bean

我使用了JSF2,我有一个ManageBean插入到这些表中

这是将数据传递给托管bean的页面

<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;
    }
}