Duvida na implementação do padrão Repository

03/06/2020

3

Bom dia

Galera estou com uma duvida em uma implementação no momento estou usando o Spring Data JPA para me ajudar. O problema é o seguinte eu tenho uma interface MiniCurriculoRepository que extende de JpaRepository, essa classe é compostas por 3 Classes Formação,Experiencia e Projetos todas mapeadas com 1:N ou seja cada minicurriculos podem ter varios objetos dessas classes.
Estou querendo implementa toda parte do crud dentro dessa interface, semelhante ou curso de vocês Spring como implementa um Sub-Recurso, porém não sei se preciso fazer uma classe concreta que implemente essa interface (MiniCurriculoRepositoryImpl) ou se uso crio meu proprio Implementação de JpaRepository, qual melhor solução ?

Segue a minha implementação da minha classe modelo MiniCurriculo.


@Entity(name = "tb08_mini_curriculo")
public class MiniCurriculo implements Serializable {

    private static final long serialVersionUID = 1L;

    @JsonIgnore
    @Id
    @Column(name = "tb08_id",unique = true, nullable = false)
    private Long id;

    @Column(name = "tb08_descricao")
    private String descricao;

    @JsonBackReference
    @MapsId
    @OneToOne
    @JoinColumn(name = "fktb08tb01_voluntario_id")
    private Voluntario voluntario;


    @OneToMany(mappedBy = "curriculo" , targetEntity = Experiencia.class, cascade = CascadeType.ALL)
    private Set<Experiencia> experiencias = new HashSet<>() ;

    @OneToMany(mappedBy = "curriculo", targetEntity = Formacao.class, cascade = CascadeType.ALL)
    private Set <Formacao> formacoes = new HashSet<>();

    @OneToMany(mappedBy = "curriculo", targetEntity = Projeto.class, cascade = CascadeType.ALL)
    private Set <Projeto> projetos = new HashSet<>();


    public MiniCurriculo() {
    }

   // getter and setter 

  // hash code and equals





Alguma suguestão ?
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar