1

spring 4.0.6 と Hibernate 4.2.21 を使用してアプリケーションを開発しています。次のようなエンティティがあります。

public class A {
   @OneToMany(mappedBy="parent", fetch = FetchType.LAZY)
   private Set<A> children = new HashSet<A>(0);

   @ManyToOne(fetch = FetchType.EAGER)
   private A parent;

   /*
    *
    * Getters And Setters
    */

}

つまり、Aエンティティはツリーです。ここで、ツリーのすべてのノードを保護したいと考えています。次のツリーを検討してください。

Node-1   
   Node-1.1
      Node-1.1.1
      Node-1.1.2
   Node-1.2
   Node-1.3
Node-2
Node-3
   Node-3.1
   Node-3.2
   Node-3.3

次のようにノードを保護します。

@PostFilter("hasPermission(filterObject, 'read')")
public List<A> getAll() {}

このコードは、第 1 レベル ( Node-1Node-2& Node-3) のノードを保護します。ここで、 、&ノードreadでユーザー アクセスを取得したいと考えています。どのように実装しますか?Node-1Node-1.1Node-1-2

4

1 に答える 1