简体   繁体   English

如何在hibernate中设置第n页的权限和子权限?

[英]How to set nth page's permission and sub permission in hibernate?

I would like to know what is the best way to set nth page permission and sub permission at once using Java 8.我想知道使用 Java 8 一次设置第 n 页权限和子权限的最佳方法是什么。

Here is Hibernate Entity这是休眠实体


    @Entity(name = "PERMISSION")
    public class Permission{
        @Id
        @Column(name = "PERMISSION_ID")
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;

        @Column(name = "PERMISSION_NAME")
        private String name;


        @NotFound(action = NotFoundAction.IGNORE)
        @ManyToOne(cascade={CascadeType.ALL})
        @JsonIgnore
        @JoinColumn(name="parent_id")
        private Permission parentId;

       @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
        @OneToMany(mappedBy = "parentId", fetch = FetchType.EAGER)
        private List<Permission> subPermission;

Here is my Java code, I want this code to optimize so that i will save nth permission object in nth sub permission object这是我的 Java 代码,我希望优化此代码,以便将第 n 个权限对象保存在第 n 个子权限对象中


    Permission parent  = new Permission("Event");
    Permission parent1 = new Permission("Deals");
    Permission parent2 = new Permission("Movies");
    Permission parent3 = new Permission("Restaurant");
    Permission parent4 = new Permission("Outdoor");

    Permission child = new Permission("Create");
    Permission child1 = new Permission("Edit");
    Permission child2 = new Permission("Update");
    Permission child3 = new Permission("Delete");

    child.setParentId(parent);
    child1.setParentId(parent);
    child2.setParentId(parent);
    child3.setParentId(parent);

Have a look at this.看看这个。 This will works这会起作用

private static List<Permission> set() {

        Permission parent = setParenPermission("Event");
        Permission parent1 = setParenPermission("Deals");
        Permission parent2 = setParenPermission("Movies");
        Permission parent3 =setParenPermission("Restaurant");
        Permission parent4 = setParenPermission("Outdoor");

        Permission child = setFirstLevel(parent, "Create");
        Permission child1 = setFirstLevel(parent, "Edit");
        Permission child2 = setFirstLevel(parent, "Update");
        Permission child3 = setFirstLevel(parent, "Delete");
        Permission subchild1 = setSecondLevel(child3,"Sub Delete");

        return Collections.unmodifiableList(
                Arrays.asList(
                        parent,
                        parent1,
                        parent2,
                        parent3,
                        parent4,
                        child,
                        child1,
                        child2,
                        child3,
                        subchild1
        ));
    }

    private static Permission setParentPermission(String name) {
        return new Permission(name);
    }

    private static Permission setFirstLevel(Permission firstLevel, String name) {
        Permission firstLevelChild = setParentPermission(name);
        firstLevelChild.setParentId(firstLevel);
        return firstLevelChild;
    }

    private static Permission setSecondLevel(Permission secondLevel, String name) {
        Permission secondLevelChild = new Permission(name);
        secondLevelChild.setParentId(secondLevel);
        return secondLevelChild;
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM