Como receber valores de multiplus checkbox usando JSP e Hibernate?

Olá pessoal, tudo bem?
Sou novo aqui na comunidade, estou fazendo um sistema para a pós em JSP e me deparei com um problema que não sei resolver, já pesquisei bastante e vi diversos exemplos em JPA mas não consegui implementar, tenho um conhecimento básico em Java, se alguém puder me ajudar agradeço muito.

Vamos lá, eu utilizo hibernate pra mapear e gerar as tabelas, e preciso passar o valor de multiplos checkboxs para meu Sensor servlet (NewSensor) e inserir na tabela de acordo com as vinculações da classe Sensor, só que não faço ideia de como fazer.
Sempre que eu pego o valor pelo request.getParameterValues e tento incluir no construtor não funciona, já fiz for, array, diversas coisas e nada.

Segue o código
System

@Entity
@Table(name = "tbl_system")
@Inheritance(strategy = InheritanceType.JOINED)
public class System implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long systemId;
    private String systemName;
    private String systemDescription;

    //@ManyToOne
    private System superSystem;

    public System() {
    }
    
    public System(String systemName, String systemDescription){
        this.systemName = systemName;
        this.systemDescription = systemDescription;
    }

// gets e sets

ObservableProperty

@Entity
@Table(name = "tbl_observable_property")
@PrimaryKeyJoinColumn
public class ObservableProperty extends Property implements Serializable {
    
    public ObservableProperty(){
    }
    
    public ObservableProperty(String name, String description, FeatureOfInterest featureOfInterest) {
       super(name, description, featureOfInterest);
    }
    
    public ObservableProperty(Long id, String name, String description, FeatureOfInterest featureOfInterest) {
       super(id, name, description, featureOfInterest);
    }
    
}

Stimulus

public class Stimulus {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private int value;
    
    @ManyToMany(cascade={ CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.REMOVE })
    private Set<ObservableProperty> observableProperties = new HashSet<ObservableProperty>();

    public Stimulus() {

    }
    
    public Stimulus(int value, Set<ObservableProperty> observableProperties){
        this.value = value;
        this.observableProperties = observableProperties;
    }
//gets e sets

Sensors

@Entity
@Table(name = "tbl_sensors")
@PrimaryKeyJoinColumn
public class Sensors extends System implements Serializable {

    @ManyToMany
    private Set<ObservableProperty> observableProperties = new HashSet<ObservableProperty>();
    
    @ManyToMany
    private Set<Stimulus> stimulus = new HashSet<Stimulus>();

    public Sensors() {
    }
    
    public Sensors(String systemName, String systemDescription, Set<ObservableProperty> observableProperties, Set<Stimulus> stimulus){
        super(systemName, systemDescription);
        this.observableProperties = observableProperties;
        this.stimulus = stimulus;
    }

//gets e sets

SensorDAO
public boolean registerSensor(Sensors sensor, Set observableProperties, Set stimulus) {
Session sessions = NewHibernateUtil.getSessionFactory().openSession();
if (isSensorExists(sensor)) {
return false;
}
Transaction tx = null;
try {
tx = sessions.getTransaction();
tx.begin();
sessions.saveOrUpdate(sensor);
tx.commit();
} catch (Exception e) {
if (tx != null) {
tx.rollback();
}
e.printStackTrace();
} finally {
sessions.close();
}
return true;
}

Meu form para inserção do Sensor

<form class="card" action="newSensor" method="post">
                        <div class="modal-body">
                            <div class="col-sm-12 col-md-12">
                                <div class="form-group">
                                    <label class="form-label">Sensor name</label>
                                    <input type="text" name="name" class="form-control" placeholder="Enter sensor name">
                                </div>
                            </div>
                            <div class="col-sm-12 col-md-12">
                                <div class="form-group">
                                    <label class="form-label">Sensor description</label>
                                    <input type="text" name="description" class="form-control" placeholder="Enter sensor description">
                                </div>
                            </div>
                            <div class="col-sm-12 col-md-12">
                                <div class="form-group">
                                    <label class="form-label">Stimulus</label>
                                    <div class="custom-controls-stacked">
                                        <%
                                            StimulusDao stiDao = new StimulusDao();
                                            List<Stimulus> ls = stiDao.getList();
                                            for (Stimulus s : ls) {
                                        %>
                                        <label class="custom-control custom-checkbox">
                                            <input type="checkbox" class="custom-control-input" name="stimulus" value="<%=s.getId()%>">
                                            <span class="custom-control-label"><%=s.getValue()%></span>
                                        </label>
                                        <%}%>
                                    </div>
                                </div>
                            </div>
                            <div class="col-sm-12 col-md-12">
                                <div class="form-group">
                                    <div class="form-label">Observable Property</div>
                                    <div class="custom-controls-stacked">
                                        <%
                                            ObservablePropertyDao obsDao = new ObservablePropertyDao();
                                            List<ObservableProperty> lo = obsDao.getListOfObservable();
                                            for (ObservableProperty o : lo) {
                                        %>
                                        <label class="custom-control custom-checkbox">
                                            <input type="checkbox" class="custom-control-input" name="obsProperty" value="<%=o.getPropertyId()%>">
                                            <span class="custom-control-label"><%=o.getPropertyName()%></span>
                                        </label>
                                        <%}%>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                            <button type="submit" class="btn btn-primary">Register</button>
                        </div>
                    </form>

Meu Sensor Servlet sem sucesso, é aqui que não sei como fazer para inserir os dados no banco.

private void newSensor(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        // VALUES FORM
        String name = request.getParameter("name");
        String description = request.getParameter("description");
        String[] stimulus = request.getParameterValues("stimulus");
        String[] observab = request.getParameterValues("obsProperty");
        
    }

Não sei mais o que fazer, agradeço quem puder me ajudar.