Clicar em um registro do datatable e abrir outro filtrado pela chave estrangeira

Ola a todos!

Sou novo aqui e estou iniciando estudos do Java com Primefaces e Hibernate. Minha dúvida é a seguinte:

Tenho uma tabela Alarmes e outra Sensores em um relacionamento um-para muitos. Gostaria de, ao selecionar um registro na tabela Alarmes abra um datatable com os Sensores relacionados aquele alarme. Segue imagens de minha aplicação:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:p="http://primefaces.org/ui">

    <ui:composition template="/template.xhtml">


        <ui:define name="title">
            <h:outputText value="#{bundle.ListTabAlarmeTitle}"></h:outputText>
        </ui:define>

        <ui:define name="body">
            <h:form id="TabAlarmeListForm">
                <p:panel header="Alarmes">
                    <p:dataTable id="datalist" value="#{tabAlarmeController.items}" var="item"
                                 selectionMode="single" selection="#{tabAlarmeController.selected}"
                                 paginator="true"
                                 rowKey="#{item.alarmeCod}"
                                 rows="10"
                                 rowsPerPageTemplate="10,20,30,40,50"
                                 >

                        <p:ajax event="rowSelect"   update="createButton viewButton editButton deleteButton"/>
                        <p:ajax event="rowUnselect" update="createButton viewButton editButton deleteButton"/>

                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ListTabAlarmeTitle_alarmeCod}"/>
                            </f:facet>
                            <h:outputText value="#{item.alarmeCod}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ListTabAlarmeTitle_alarmeUnidade}"/>
                            </f:facet>
                            <h:outputText value="#{item.alarmeUnidade}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ListTabAlarmeTitle_alarmeReven}"/>
                            </f:facet>
                            <h:outputText value="#{item.alarmeReven}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ListTabAlarmeTitle_alarmePib}"/>
                            </f:facet>
                            <h:outputText value="#{item.alarmePib}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ListTabAlarmeTitle_alarmeIp}"/>
                            </f:facet>
                            <h:outputText value="#{item.alarmeIp}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ListTabAlarmeTitle_alarmeContrato}"/>
                            </f:facet>
                            <p:selectBooleanCheckbox value="#{item.alarmeContrato}" disabled="true"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ListTabAlarmeTitle_alarmeNumContrato}"/>
                            </f:facet>
                            <h:outputText value="#{item.alarmeNumContrato}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ListTabAlarmeTitle_alarmeQuantSensores}"/>
                            </f:facet>
                            <h:outputText value="#{item.alarmeQuantSensores}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ListTabAlarmeTitle_alarmeSituacao}"/>
                            </f:facet>
                            <h:outputText value="#{item.alarmeSituacao}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ListTabAlarmeTitle_alarmeObsoleto}"/>
                            </f:facet>
                            <p:selectBooleanCheckbox value="#{item.alarmeObsoleto}" disabled="true"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ListTabAlarmeTitle_alarmeObservacoes}"/>
                            </f:facet>
                            <h:outputText value="#{item.alarmeObservacoes}"/>
                        </p:column>
                        
                        <f:facet name="footer">
                            <p:commandButton id="createButton" icon="ui-icon-plus"   value="#{bundle.Create}" actionListener="#{tabAlarmeController.prepareCreate}" update=":TabAlarmeCreateForm" oncomplete="PF('TabAlarmeCreateDialog').show()"/>
                            <p:commandButton id="viewButton"   icon="ui-icon-search" value="#{bundle.View}" update=":TabAlarmeViewForm" oncomplete="PF('TabAlarmeViewDialog').show()" disabled="#{empty tabAlarmeController.selected}"/>
                            <p:commandButton id="editButton"   icon="ui-icon-pencil" value="#{bundle.Edit}" update=":TabAlarmeEditForm" oncomplete="PF('TabAlarmeEditDialog').show()" disabled="#{empty tabAlarmeController.selected}"/>
                            <p:commandButton id="deleteButton" icon="ui-icon-trash"  value="#{bundle.Delete}" actionListener="#{tabAlarmeController.destroy}" update=":growl,datalist" disabled="#{empty tabAlarmeController.selected}"/>
                            <p:commandButton id="viewSensores" icon="ui-icon-search" value="Sensores"  update=":TabAlarmeViewForm"  action="/tabAlarmeSensores/List" disabled="#{empty tabAlarmeController.selected}"/>                        
                        
                            <p:commandButton id="selectButton" icon="ui-icon-search"
                               title="View"  process="@this"  
                               oncomplete="PF('itensDialog').show()" update=":dialogForm:itensDialog">
                                <f:setPropertyActionListener value="#{tabAlarmeController.selected.alarmeCod}"  
                                                             target="#{x}"   /> 
                            </p:commandButton>
                        
                        </f:facet>
                    </p:dataTable>
                </p:panel>
            </h:form>

            <h:form id="dialogForm"  prependId="true" >
               
                <p:dialog   header="Sensores do Alarme" widgetVar="itensDialog" resizable="false" 
                    id="itensDialog" showEffect="fade" modal="false" appendTo="@(body)" width="500">
                    <p:panel header="Sensores"   id="painelsensores">
                    <p:dataTable id="datalist" value="#{tabAlarmeSensoresController.items}" var="sensor"
                                 selectionMode="single" selection="#{tabAlarmeSensoresController.selected}"
                                 paginator="true" 
                                 rowKey="#{sensor.sensorCodigo}" 
                                 rows="10" 
                                 rowsPerPageTemplate="10,20,30,40,50" draggableColumns="true" >               
                                   
                        <p:column headerText="sensor_código">
                            <h:outputText value="#{sensor.sensorCodigo}"/>
                        </p:column>
                        <p:column headerText="sensor_Alarme_código">
                             <h:outputText value="#{sensor.sensorAlarmeCod}"/>
                        </p:column>                       
                        
                       
                        
                    </p:dataTable>
                    </p:panel>
                </p:dialog>
            </h:form>
            
            <ui:include src="Create.xhtml"/>
            <ui:include src="Edit.xhtml"/>
            <ui:include src="View.xhtml"/>
        </ui:define>
    </ui:composition>

</html>

Ninguém pode ajudar?

Ao clicar na linha selecionada você tem o objeto completo certo?

certo