使用java存储库更新列表属性

ki0zmccv  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(310)

我有一个名为autonomo的对象,它有一个合格建议列表(propostatselegiveis),它只显示与autonomo具有相同类别/分类名称的建议,例如,如果他是园丁,则只有属于园丁类别的建议才会添加到该自治列表中。每次创建提案/提案时,它都会试图通知拥有此类/类别的自治机构
这里的问题是,虽然autonomo类中的列表实际上已更新,但在我的存储库中它不会更新!
自主类

  1. public class Autonomo extends Perfil {
  2. @OneToMany(mappedBy = "categoria")
  3. List<Proposta> propostasElegiveis = new ArrayList<Proposta>();
  4. @Transactional
  5. public void adicionaProposta(Proposta proposta){
  6. propostasElegiveis.add(proposta);
  7. }

建议类

  1. @Entity
  2. @Table(name = "proposta")
  3. public class Proposta{
  4. @Id
  5. @GeneratedValue(strategy = GenerationType.IDENTITY)
  6. private Integer id;
  7. @OneToOne
  8. @JoinColumn(name = "categoria_id",insertable = true, updatable = false)
  9. private Categoria categoria;

提案服务

  1. @Service
  2. public class PropostaService {
  3. @Autowired
  4. private PropostaRepository propostaRepository;
  5. @Autowired
  6. private PerfisRepository perfisRepository;
  7. @Transactional
  8. public ResponseEntity cadastrarProposta(Proposta novaProposta){
  9. perfisRepository.saveAll(notificaElegiveis(novaProposta.getCategoria(), novaProposta));
  10. perfisRepository.flush();
  11. propostaRepository.save(novaProposta);
  12. return ResponseEntity.ok().build();
  13. }
  14. private List<Autonomo> notificaElegiveis(Categoria categoria, Proposta proposta){
  15. List<Autonomo> autonomos = new ArrayList<>();
  16. for (Perfil autonomo : perfisRepository.findAllByCategoriaAutonomo(categoria.getNome())){
  17. autonomos.add((Autonomo) autonomo);
  18. }
  19. for (Autonomo autonomo: autonomos) {
  20. autonomo.adicionaProposta(proposta);
  21. perfisRepository.save(autonomo);
  22. }
  23. return autonomos;
  24. }

perfil存储库(autonomo是perfil的一个子类)

  1. public interface PerfisRepository extends JpaRepository<Perfil, Integer> {
  2. @Query(value = "SELECT * FROM usuario as a, categoria as c WHERE a.tipo_Perfil = 'autonomo' AND a.ID_CATEGORIA = C.ID AND c.nome like ?1 ", nativeQuery = true)
  3. List<Perfil> findAllByCategoriaAutonomo(String nomeCategoria);
  4. }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题