在jbpm中定义了三种类型的用户模型,user,group,membership;membership是其他两者之间的纽带,下面是把两个用户加入到同一个组的例子:
Session sessio=SessionFactory.currentSession(); //这里是获得hibernate的session,SessionFactory是自己加进去的
IdentitySession identitySession=new IdentitySession(sessio);//其实是用identitySession来代替session.
User guolei=new User("guolei");//定义一个用户
User guoxin=new User("guoxin");
Group group1=new Group("group1","designer");//定义一个组,组的类型是desiger
Membership.create(guolei,"mem",group1);//创建了用户成员和组之间的关系,把两个用户加入到group1
Membership.create(guoxin,"mem",group1);
identitySession.saveUser(guolei);//保存用户到后台的数据库,在库名为jbpm的数据库中可以查看到。
identitySession.saveUser(guoxin);
guolei=identitySession.loadUser(guoxin.getId());
System.out.print(guoxin.getName());
Set groups=group1.getUsers();//得到组中的成员
System.out.println(groups.size());//目前组的大小
Iterator iter=groups.iterator();
while(iter.hasNext()){
User grp=(User)iter.next();
System.out.println(grp.getName());}打印出组成员的名字
更为详细的介绍可以参考jbpm自带的源文件,在jbpm/scr/java.identity.test,