Trabalhar com lista e <p:selectBooleanCheckBox>

Bom dia galera. Gostaria de saber com a melhor maneira de manipular o componente do primefaces <p:selectBooleanCheckbox> junto com uma lista no back-end. Primeiramente gostaria de saber se é possível essa relação e se é viável.

A problema que estou enfrentando é: Tenho duas entidades/Classes, são elas: Praga e Inspeção. Preciso desenvolver a parte de persistencia da Inspecao, onde toda inspeção pode vir com TODAS ou ALGUMAS ou NENHUMA praga. Então pensei em criar um atributo do tipo List<Praga> na classe Inspecao. E na parte do formulário, queria fazer uma tela com todas as pragas listadas acompanhadas de uma checkbox e quando este for clicado (true) eu adicionaria a praga referente ao checkbox no atributo List da classe Inspecao. Tentei pensar numa lógica mas travei.

consegui ser claro ? espero que sim.

Segue os códigos abaixo:

Classe Inspecao:

@Entity
@SequenceGenerator(name = "INSPECAO_SEQUENCE", sequenceName = "INSPECAO_SEQUENCE",
        allocationSize = 1, initialValue = 0)
@Table(name = "inspecao")
public class Inspecao implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "INSPECAO_SEQUENCE")
    private Long id;

    @Column(name = "numero_inspecao")
    private Long numInspecao;

    @ManyToOne
    @JoinColumn(name = "talhao_inspecionado", nullable = false)
    private Talhao talhaoInspecionado;

    @Column(name = "porcentagem_a_visar", nullable = false)
    private double porcentagemAvisar;

    @Column(name = "data_inspecao", nullable = false)
    @Type(type = "com.delago.matta.type.LocalDateUserType")
    private LocalDate dataInspecao;

    @ManyToOne
    @JoinColumn(name = "inspetor", nullable = false)
    private Funcionario inspetorResponsavel;

    @OneToMany(mappedBy = "inspecao")
    @OrderBy("id")
    private List<Praga> pragaEncontradas; //essa é o atributo List que deve receber as pragas com o valor do checkbox true

    @Column(name = "planta_novas_infectadas")
    private boolean plantasNovas;

    @Column(name = "qntdMaisElevado_plantasNovas")
    private Integer qntdMaisElevadaNovas;

    @Column(name = "qntdTotal_plantasNovas")
    private Integer qntdTotalNovas;

    @Column(name = "plantas_velhas_infectadas")
    private boolean plantasVelhas;

    @Column(name = "qntdMaisElevado_plantasVelhas")
    private Integer qntdMaisElevadaVelhas;

    @Column(name = "qntdTotal_plantasVelhas")
    private Integer qntdTotalVelhas;

    //gets e sets omitidos

Classe Praga:

@Entity
@SequenceGenerator(name = "PRAGA_SEQUENCE", sequenceName = "PRAGA_SEQUENCE",
        allocationSize = 1, initialValue = 0)
@Table(name = "praga")
public class Praga implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PRAGA_SEQUENCE")
    private Long id;

    @Column(name = "nome", nullable = false)
    private String nome;

    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JoinColumn(name = "intervalo_baixo")
    private Intervalo intervaloBaixo;

    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JoinColumn(name = "intervalo_medio")
    private Intervalo intervaloMedio;

    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JoinColumn(name = "intervalo_alto")
    private Intervalo intervaloAlto;

    @ManyToOne
    private Inspecao inspecao;

Tentativa da tela para lançamento da inspeção: Omiti alguns campos pra encurtar o código:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:c="http://java.sun.com/jsp/jstl/core"
                xmlns:p="http://primefaces.org/ui" template="../main.xhtml">

    <ui:define name="content">
        <div style="width: fit-content;">
            <h:form id="fmCadIspecao">
                <p:focus />
                <div style="margin: 0 auto; width: fit-content;">
                    <h2>Lançamento de Inspeção</h2>
                </div>
                <!--Cadastro de Inspeção-->        
                <p:panelGrid>                     
                    
                    <!--Checkbox para a Praga 1 (Leprose) junto com campos para inserir informações sobre a praga-->                        
                    <p:row>
                        <p:column colspan="8">
                            <p:selectBooleanCheckbox id="boolCheckLeprose" required="#{param['fmCadIspecao:btnConfirm']==false}"
                                                     value="Leprose" >
                                <f:ajax render="novas"/>
                            </p:selectBooleanCheckbox>
                            <p:spacer width="6"/>
                            <p:outputLabel value="Leprose" for="boolCheckLeprose" />

                            <br/>

                            <p:selectBooleanCheckbox id="novas" required="#{param['fmCadIspecao:btnConfirm']==false}" 
                                                     value="#{inspecaoController.inspecao.plantasNovas}" />
                            <p:spacer width="6"/>
                            <p:outputLabel value="Plantas Novas >>" for="novas"/>
                            <p:spacer width="10"/>
                            <p:outputLabel id="qtdElevadoNova" value="Qtde. + elevado: " for="qtdMaisElevadoNova"/>
                            <p:inputText id="qtdMaisElevadoNova" value="#{inspecaoController.inspecao.qntdMaisElevadaNovas}" style="width: 60px;"/>
                            <p:spacer width="5"/>
                            <p:outputLabel id="qtdTotalNova" value="Qtde. Total: " for="qtdTotalNovas"/>
                            <p:inputText id="qtdTotalNovas" value="#{inspecaoController.inspecao.qntdTotalNovas}" style="width: 60px;"/>

                            <br/>

                            <p:selectBooleanCheckbox id="velhas" required="#{param['fmCadIspecao:btnConfirm']==false}" 
                                                     value="#{inspecaoController.inspecao.plantasVelhas}" />
                            <p:spacer width="6"/>
                            <p:outputLabel value="Plantas Velhas >>" for="velhas"/>
                            <p:spacer width="8"/>
                            <p:outputLabel id="qtdElevadoVelhas" value="Qtde. + elevado: " for="qtdMaisElevadoVelhas"/>
                            <p:inputText id="qtdMaisElevadoVelhas" value="#{inspecaoController.inspecao.qntdMaisElevadaVelhas}" style="width: 60px;"/>
                            <p:spacer width="5"/>
                            <p:outputLabel id="qtdTotal" value="Qtde. Total: " for="qtdTotalVelhas"/>
                            <p:inputText id="qtdTotalVelhas" value="#{inspecaoController.inspecao.qntdTotalVelhas}" style="width: 60px;"/>
                            <!--Iria repetir todo o código acima para todas as pragas e adicionar as que foram checkadas 
                                  no atributo list d Classe Inspecao--> 
                            <br/>

                            <p:outputLabel value="Estágios encontrados:"/>
                            <p:selectManyCheckbox value="#{inspecaoController.inspecao.estagiosEncontrados}" layout="grid" columns="4">
                                <f:selectItems value="#{inspecaoController.estagiosExistentes}" var="#{e}" itemLabel="#{e}" itemValue="#{e}"/>
                                <p:spacer width="5"/>
                            </p:selectManyCheckbox>

                        </p:column>
                    </p:row>
                </p:panelGrid>
                <div style="margin: 0 auto; width: fit-content;">
                    <p:commandButton id="btnConfirm" class="btn btn-success btn-md" value="Cadastrar" icon="fa fa-check" action="#{inspecaoController.salvar()}" ajax="false"/>
                    <p:commandButton id="btnCancel" class="btn btn-danger btn-md" value="Cancelar" icon="fa fa-ban" action="#{inspecaoController.cancelar()}" />
                </div>
            </h:form>
        </div>
    </ui:define>
</ui:composition>