有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于将数据插入表中的java ManytoMany关系

认证。爪哇

        @Entity
        public class Authentication {

            @Id
            @GeneratedValue(strategy=GenerationType.AUTO)
            @Column(name="authenticationId")
            long authenticationId;

            @Column(name="username")
            String username;

            @Column(name="password")
            String password;

            @Column(name="confirmPassword")
            String confirmPassword;

            @Column(name="ENABLED")
            int enabled;

            @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
            @JoinTable(name = "userrole",joinColumns = { 
            @JoinColumn(name = "authenticationId", nullable = false, updatable = false)},       inverseJoinColumns = { @JoinColumn(name = "roleId", nullable = false, updatable = false) })
            Set<Role> roleSetInAuthentication = new HashSet<Role>();

角色。爪哇

    @Entity
    public class Role {

        @Id
        @GeneratedValue(strategy=GenerationType.AUTO)
        @Column(name="roleId")
        long roleId;

        @Column(name="roleName")
        String roleName;    

        @ManyToMany(fetch = FetchType.LAZY, mappedBy = "roleSetInAuthentication")
        Set<Authentication> authenticationSetInRole = new HashSet<Authentication>();

管理员控制器。爪哇

        @RequestMapping(value = "/admin", method = RequestMethod.GET)
           public String displayForm(HttpServletRequest request) {
            List<Role> roleList = adminService.getRoleCategory();
            request.getSession().setAttribute("roleList", roleList);
            return "admin";     
        }

管理员。jsp

            <form:select path="">
            Assign Role<option value="SELECT">--SELECT--</option>
            <c:forEach var="r" items="${roleList}">
            <option value="${r.roleId}">${r.roleName}</option>
            </c:forEach>
            </form:select>

我使用的是SpringMVC表单,创建了许多关系,因为其中生成了一个单独的表(userrole),字段为authenticationId,roleId。我是否需要手动在(roleuser)表中插入数据,但我想我正在创建许多关系,因此数据应该自动插入到这个表中,但在jsp中如何编写代码并利用关系,以便数据应该自己插入到这个表中,而我不需要手动输入。我只是想试试。我没有完全明白


共 (1) 个答案

  1. # 1 楼答案

    第三个表称为链接表。n:m关系每个身份验证都有多个角色,反之亦然

    因此,在对象级别,身份验证具有角色集合,角色具有身份验证集合

    插入表时,ORM首先将数据插入到角色和身份验证中。角色Id和身份验证Id将插入到链接表中

    从身份验证中删除一个角色时,只需删除链接表条目,反之亦然

    在检索角色时,它将从链接表的引用中获取身份验证,反之亦然

    它完全自动,无需手动