Фильтрация данных по зарегистрированному пользователю
У меня есть приложение 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 ...
}