一个简单的hibernate权限管理,采用t_user(用户表),t_role(角色表),和t_user_role(中间表),贴上写的代码public void testSave2() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
Role r1 = new Role();
r1.setName("数据录入人员");
//因为后面引用到了所以要先存一下
session.save(r1);
Role r2 = new Role();
r2.setName("商务主管");
session.save(r2);
Role r3 = new Role();
r3.setName("大区经理");
session.save(r3);
User u1 = new User();
u1.setName("A");
Set u1Roles = new HashSet();
u1Roles.add(r1);
u1Roles.add(r2);
u1.setRoles(u1Roles);
User u2 = new User();
u2.setName("B");
Set u2Roles = new HashSet();
u2Roles.add(r2);
u2Roles.add(r3);
u2.setRoles(u2Roles);
User u3 = new User();
u3.setName("C");
Set u3Roles = new HashSet();
u3Roles.add(r1);
u3Roles.add(r2);
u3Roles.add(r3);
u3.setRoles(u3Roles);
session.save(u1);
session.save(u2);
session.save(u3);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}后来我想从t_role表中读取权限存入user的roles集合中public void testSave2() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
// String query = "from Role";
// List rolelist = session.createQuery(query).list();
//
// Role role[] = new Role[3];
// for(Iterator iter = rolelist.iterator() ; iter.hasNext();){
// int i = 0;
// role[i] = (Role) iter.next();
// }
//
// User u1 = new User();
// u1.setName("张三");
// Set u1Roles = new HashSet();
// u1Roles.add(role[0]);
// u1Roles.add(role[1]);
// u1.setRoles(u1Roles);
//
// User u2 = new User();
// u2.setName("李四");
// Set u2Roles = new HashSet();
// u2Roles.add(role[1]);
// u2Roles.add(role[2]);
// u2.setRoles(u2Roles);
//
// User u3 = new User();
// u3.setName("王五");
// Set u3Roles = new HashSet();
// u3Roles.add(role[0]);
// u3Roles.add(role[1]);
// u3Roles.add(role[2]);
// u3.setRoles(u3Roles);
session.save(u1);
session.save(u2);
session.save(u3);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}这样是行不通的说是 Column 'roleid' cannot be null
请问各位大侠该怎么修改才能实现从t_role表里读取权限数据,并且存入数据库中?
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
Role r1 = new Role();
r1.setName("数据录入人员");
//因为后面引用到了所以要先存一下
session.save(r1);
Role r2 = new Role();
r2.setName("商务主管");
session.save(r2);
Role r3 = new Role();
r3.setName("大区经理");
session.save(r3);
User u1 = new User();
u1.setName("A");
Set u1Roles = new HashSet();
u1Roles.add(r1);
u1Roles.add(r2);
u1.setRoles(u1Roles);
User u2 = new User();
u2.setName("B");
Set u2Roles = new HashSet();
u2Roles.add(r2);
u2Roles.add(r3);
u2.setRoles(u2Roles);
User u3 = new User();
u3.setName("C");
Set u3Roles = new HashSet();
u3Roles.add(r1);
u3Roles.add(r2);
u3Roles.add(r3);
u3.setRoles(u3Roles);
session.save(u1);
session.save(u2);
session.save(u3);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}后来我想从t_role表中读取权限存入user的roles集合中public void testSave2() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
// String query = "from Role";
// List rolelist = session.createQuery(query).list();
//
// Role role[] = new Role[3];
// for(Iterator iter = rolelist.iterator() ; iter.hasNext();){
// int i = 0;
// role[i] = (Role) iter.next();
// }
//
// User u1 = new User();
// u1.setName("张三");
// Set u1Roles = new HashSet();
// u1Roles.add(role[0]);
// u1Roles.add(role[1]);
// u1.setRoles(u1Roles);
//
// User u2 = new User();
// u2.setName("李四");
// Set u2Roles = new HashSet();
// u2Roles.add(role[1]);
// u2Roles.add(role[2]);
// u2.setRoles(u2Roles);
//
// User u3 = new User();
// u3.setName("王五");
// Set u3Roles = new HashSet();
// u3Roles.add(role[0]);
// u3Roles.add(role[1]);
// u3Roles.add(role[2]);
// u3.setRoles(u3Roles);
session.save(u1);
session.save(u2);
session.save(u3);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}这样是行不通的说是 Column 'roleid' cannot be null
请问各位大侠该怎么修改才能实现从t_role表里读取权限数据,并且存入数据库中?
解决方案 »
- hibernate级联删除 出错
- 在struts2里面用el获取到Action里的值
- Flex中怎么计算一个算术表达式,要自己写计算方法吗?
- java web开发 急急急急!!!!!
- mondrian中jpivot里chart,它调用的xform表单,怎么可以传相应参数后提交?
- jsp 注册完毕 自动跳转原来的界面
- Web Service的事务控制问题
- Eclipse下resin不能启动
- 看了被托普所骗的程序员兄弟的留言,非常气愤,我们程序员为什么要受到这样的侮辱!!建议所有程序员联合起来,在你么常去的网站,论坛,
- 求指点迷津。。。
- List的remove方法
- 在aciton中怎么获取选中的下拉框的值?
r1.setName("数据录入人员");
//因为后面引用到了所以要先存一下
session.save(r1);
么,我想从数据库里读权限然后进行操作,请问这样有办法么?