Boa tarde.
Tenho as classes Rotinas e Perfil, onde as mesma possuem um relacionamento n x n, preciso fazer uma consulta usando o spring data que list todas as rotina de um prefil, tentei de varias formas, mas sem sucesso. segue abaico as duas classes.
@Entity
@Table(name = "perfil")
public class Perfil implements Serializable {
private static final long serialVersionUID = -5594956718599379597L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(length = 60, nullable = false)
private String nome;
@Column(length = 100, nullable = false)
private String descricao;
@Column(length = 100, nullable = false)
private String imagem;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "usuario_perfil", joinColumns = @JoinColumn(name = "usuario_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "perfil_id", referencedColumnName = "id"))
private List<Usuario> usuarios;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "perfil_rotina", joinColumns = @JoinColumn(name = "rotina_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "perfil_id", referencedColumnName = "id"))
private List<Rotina> rotinas;
// methodo get e set
}
@Entity
@Table(name = "rotina")
public class Rotina implements Serializable {
private static final long serialVersionUID = 8724103892548378330L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private int id;
@Column(length = 60, nullable = false)
private String nome;
@Column(length = 100, nullable = false)
private String descricao;
@Column(length = 100, nullable = false)
private String acao;
@Column(length = 100, nullable = false)
private String imagem;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "perfil_rotina", joinColumns = @JoinColumn(name = "rotina_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "perfil_id", referencedColumnName = "id"))
private List<Perfil> perfis;
// methodo get e set
public interface RotinaRepositorio extends JpaRepository<Rotina, Integer> {
// ADD
public List<Rotinas> listarRotinasPorPerfil(@Param("idPerfil") int idPerfil)
throws NoResultException;
}
SELECT * FROM rotina i, perfil_rotina b
where i.id = b.rotina_id
and perfil_id = 2
Esse seria o select que retorna os dados que preciso, tentei usar sql com spring data, mas nao consegui alguem tem um exemplo ou uma dica ?
Valeu…