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-1
、Node-2
& Node-3
) のノードを保護します。ここで、 、&ノードread
でユーザー アクセスを取得したいと考えています。どのように実装しますか?Node-1
Node-1.1
Node-1-2