Фильтрация данных по зарегистрированному пользователю

У меня есть приложение Spring boot mvc, в котором есть возможность иметь несколько пользователей. Я хотел бы отфильтровать данные по зарегистрированному пользователю. Например, пользователь 1 не видит данные, зарегистрированные пользователем 2.

В моем случае, что бы я определил, это таблица id_entidade, которая существует в user и distrito.

Я думал, как это сделать методом GET

Как я могу это сделать?

мой репозиторий классов

@Repository
public interface DistritosRepository extends JpaRepository<Distritos, Integer> {


    @Query( nativeQuery=true, value="SELECT dist.nome, dist.id_distrito, dist.id_entidade, dist.id_municipio, dist.id_uf, dist.codigo_dne, dist.flag_ativo,  enti.nome Entidade, muni.nome Municipio, unfe.nome UF FROM glb.distritos  dist, glb.entidades  enti, glb.municipios muni, glb.ufs unfe WHERE dist.id_entidade  = enti.id_entidade AND dist.id_municipio = muni.id_municipio AND muni.id_uf = unfe.id_uf order by nome ")
    public  Collection<Distritos>  encontrar();

} 

Класс Сервис

@Service
public class DistritosService {

    @Autowired
    DistritosRepository distritosRepository;

            //buscar todos registros
            public Collection<Distritos> buscarFiltro(){
                return distritosRepository.encontrar();
            }

}

мой контроллер класса

@RestController
@RequestMapping(value="/user")
public class DistritosController {

    @Autowired
    DistritosService distritosService; 

    EntidadesAdministradoresService eaService;

    @RequestMapping(method = RequestMethod.POST, value = "/distritos", consumes = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<Distritos> cadastrarDistritos(@RequestBody Distritos distritos) {
        Distritos distritosCadastrado = distritosService.cadastrar(distritos);
        return new ResponseEntity<Distritos>(distritosCadastrado, HttpStatus.CREATED);
    }


    @RequestMapping(method = RequestMethod.GET, value = "/distritos", produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<Collection<Distritos>> buscarTodosDistritos() {
        Collection<Distritos> distritosBuscados = distritosService.buscarFiltro();
            return new ResponseEntity<>(distritosBuscados, HttpStatus.OK);
    } 


    @RequestMapping(method = RequestMethod.GET, value = "/distritos/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<Distritos> buscarDistritosPorId(@PathVariable int id) {
        Distritos distritos = distritosService.buscaPorId(id);
        return new ResponseEntity<>(distritos, HttpStatus.OK);
    }


}

мой класс Distritos

@Entity
@Table(name = "distritos", schema="glb")
@XmlRootElement


@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "idDistrito", scope= Distritos.class, resolver = EntityIdResolver.class)         
public class Distritos implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id_distrito")
    private int idDistrito;


    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 70)
    @Column(name = "nome")
    private String nome;


    @Size(max = 8)
    @Column(name = "codigo_dne")
    private String codigoDne;


    @Column(name = "flag_ativo")
    private Integer flagAtivo;


    @JoinColumn(name="idEntidade")
    @ManyToOne(optional = false)
    private Entidades entidade;


    @JoinColumn(name="idMunicipio")
    @ManyToOne(optional = false)
    private Municipios municipio;


    @JoinColumn(name="idUf")
    @ManyToOne(optional = false)
    private Ufs uf;

   gets and sets ... 


}

0 ответов

Другие вопросы по тегам