在EJB 3中插入数据(CRM多对多)

时间:2014-07-16 08:54:27

标签: jsf-2 ejb ejb-3.0 jsf-2.2

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

  • 用户表:用户名(PK),userpass
  • 角色表:角色名称(PK)
  • User_Role表:用户名(PK,FK),角色名称(PK,FK)(来自用户和角色表的引用)

然后我创建了一个EJB3项目,包括每个表的实体的实体和会话bean。

我使用了JSF2并且我有一个管理Bean来插入那些表

这是将数据传递给托管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>

这是我的管理Bean:

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;
    }
}
  • 数据传递给用户和角色表。但它不会将数据传递给User_Role表。
  • 我使用的是GlassFish Server 4 任何建议。提前致谢。

0 个答案:

没有答案