1.- Define the Filter in your Entity.
| | @Entity | @Table(name="NODE") | @org.hibernate.annotations.FilterDef( | name = "accessLevelFilter", | parameters = [EMAIL PROTECTED](name = "currentAccessLevel", type="integer")} | ) | @org.hibernate.annotations.Filter( | name = "accessLevelFilter", | condition = "READ_ACCESS_LEVEL <= :currentAccessLevel" | ) | public abstract class Node implements Serializable { | ... | @Column(name = "READ_ACCESS_LEVEL", nullable = false) | protected int readAccessLevel; | | ... | } | | 2.- Configure components.xml | <core:filter name="accessLevelFilter"> | <core:name>accessLevelFilter</core:name> | <core:parameters> | <key>currentAccessLevel</key> | <value>#{currentAccessLevel}</value> | </core:parameters> | </core:filter> | | <core:managed-persistence-context name="restrictedEntityManager" | auto-create="true" | entity-manager-factory="#{wikiEntityManagerFactory}"> | <core:filters><value>#{accessLevelFilter}</value></core:filters> | </core:managed-persistence-context> | | | 3.- Set somewhere a value for #{currentAccessLevel}. | Contexts.getSessionContext().set("currentAccessLevel", bestRole.getAccessLevel()); | 4.- Finally use the filtered Persistence Context. | @Name("nodeDAO") | @AutoCreate | @Transactional | public class NodeDAO { | | // Most of the DAO methods use this | @In protected EntityManager restrictedEntityManager; | ... | public Node findNode(Long nodeId) { | restrictedEntityManager.joinTransaction(); | try { | return (Node) restrictedEntityManager | .createQuery("select n from Node n where n.id = :nodeId") | .setParameter("nodeId", nodeId) | .getSingleResult(); | } catch (EntityNotFoundException ex) { | } catch (NoResultException ex) { | } | return null; | } | | } | | Above steps are based on the Seam wiki example. If you want to see more, check it out. HTH. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4045523#4045523 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4045523 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user