2012-01-12 2 views
0

им обучения Jsf окружающей среде, SRY, если это вид простой случай для вас,заселить primefaces DataTable из nativeQuery

Im пытаясь заполнить primefaces DataTable из родного запроса, это то, что я получил в тот момент

 //My native query is defined in my entity 
     @NamedNativeQueries({@NamedNativeQuery(name="Tallt089.bandejaCitas", 
     query ="select bandeja.ep_id_tallt089 idBandeja ...)}) 
     ... 
     ... 

Я называю этот nativeQuery этот путь

 public List**<TablaBandejaCitas>** bandejaCitas(String cia, String agencia, String division) { 
     Query query = em.createNamedQuery("Tallt089.bandejaCitas"); 
     query.setParameter(1,cia); 
     query.setParameter(2,agencia); 
     query.setParameter(3,division); 
     return query.getResultList(); 
    //this works fine retrieves correctly my query 
} 

И использовать его на мой managedBean

 public List**<TablaBandejaCitas>** bandejaCitas(String compania, 
     String agencia,String division){ 
     return agendamientoSession.bandejaCitas(compania,agencia,division); 
     } 

затем ссылается это на моей странице JSF как этого

 <p:dataTable id="bandeja_citas" 
    value="#{AgendamientoMBean.bandejaCitas(UsuarioMBean.compania,UsuarioMBean.agencia, 
    UsuarioMBean.divisionPK.diDivision)}" 
          var="bandeja" 
          paginator="true" rows="15" > 
        <f:facet name="header"> 
         Bandeja Citas por confirmar/Llamadas por realizar 
        </f:facet> 
        <p:column headerText="Id Bandeja" > 
         <h:outputText value ="#{bandeja.idBandeja}"/> 
        </p:column> 

        <p:column headerText="Cliente" sortBy="#{bandeja.cliente}" 
         filterBy="#{bandeja.cliente}"> 
         <h:outputText value ="#{bandeja.cliente}"/> 
        </p:column> 
       ... 
       ... 
       ... 
       </p:dataTable> 

я понял, что свойство вара нужно что-то, как отображается в полях запроса, так как предупреждения на страницах JSF говорят мне, что это unkwon недвижимость

 <h:outputText value ="#{bandeja.**cliente**}"/> 

Я не знаю, как сохранить запрос в этой переменной, так что данные могут быть отображены

прямо сейчас я получил для входной строки исключение как компонент его чтения необработанных данных вместо formmatted списка с соответствующей переменной, заполненной с полями запроса ..

надеюсь, что вы можете understandme

apreciatte ваши комментарии заранее: D

+0

Ваш метод bandejaCitas только возвращающимся список по умолчанию объектов Object? Возможно, вам понадобится кастинг, чтобы убедиться, что у вас есть объекты объекта Bandeja. return (Список ) query.getResultList(); – Rich

+0

Привет, спасибо за ваш ответ. Да, он просто возвращает список объектов Объекты, можете ли вы показать мне пример того, как реализовать этот листинг ? поэтому я могу правильно называть его на странице jsf, я обновил свой код, добавив приведение, но все еще не работаю – arkantos

+0

Конечно, это было что-то, что я только что заметил по сравнению с кодом, который я видел, используя getResultList(), который просто возвращает объекты, поэтому на хотя бы один шаг позволяет Java, известному тем, что эти объекты фактически являются классом, который у вас есть со свойствами для каждой проекции запроса. Если собственный запрос не возвращает прогнозы, которые являются столбцами таблицы, сопоставленными с свойствами класса Entity/Bandeja, то я думаю, что это проблема. Как сделать шаг назад, может быть полезно ответить на ваш вопрос, если вы можете объяснить, почему вы использовали NativeQuery, и вообще то, что вы пытаетесь извлечь из БД (строка или многопользовательский запрос?) – Rich

ответ

0

Ok, Я решил эту маленькую проблему. Я сделал это путем создания класса сущностей (даже не таблица в БД) с колоннами, которые я выбираю в nativeQuery, а затем использовать этот класс в качестве опции resultClass в родном:

resultClass=com.talleresZeusWeb.entidades.BandejaCitas.class 

Я пытался чтобы сделать это sqlresultsetmapping аннотации, но не знаю, чтобы использовать его в этом случае.

Надежда кто-то считает, что это полезно в какой-то момент, спасибо за ваши ответы @Rich

Смежные вопросы