2014-03-13 3 views
0

내가 JPA 엔티티 속성을 감사하고 필터링 할 수있는 가장 좋은 방법을 생각하고 있어요 및 필드JPA 필터 속성

인터페이스 또는 일이있는 경우 내 질문 필터 결과가

예 내가 사용자를 생각한다 관리자 역할과 판매자 역할을 가진 다른 사용자 모두 쿼리를 만들 수 있지만 둘 다 모든 속성을 읽고 쓸 수는 없습니다. 필터를 작성하려면 Thread 특성을 가진 인터셉터를 만들어 현재 Thread의 역할을 알아야합니다. 하지만 쿼리에서 나는 필터 할 속성이 무엇인지 알 수 없습니다.

EntityManager em = ... 
Query q = em.createQuery ("SELECT AVG(x.price) FROM Magazine x"); 
Number result = (Number) q.getSingleResult(); 

예는 방법의 결과가 실체이며, 무엇을 읽을 수있는 속성이 무엇인지 알고에 정수지만 어떻게 요격합니다. 판매자 역할이 사용자에 대한

는 가격에서 꼭 을 보여줍니다 그러나 관리자 역할을 가진 사용자에 대한 가격은 NULL이 될

는 JPA와 일부 존재하거나 할 최대 절전 모드 (관리자가 가격을 볼 수 있다고 가정)해야한다 이? 나는 공기에 질문을한다. .. 약간의 생각을 듣는다.

감사합니다.

답변

0

제가 처음 문제에 대해 올바르게 이해했다면 TypedQuery를 사용할 수 있습니다. 권한 부여는 다른 문제이며 다른 곳에서 처리해야합니다 (DB 코드가 아님)

+0

이것은 내 질문입니다. 다른 프로그래머에게베이스를 만들어야하지만 .. 권한이없는 속성을 제거 할 수있는 곳은 어디입니까? 읽은 후 그 값이 내 컨트롤에서 벗어나는 값을 메서드가 반환하면. – jrey

+1

예를 들어 스프링 시큐리티를 구현했을 것 같아요. – Lucas