Guten Morgen zusammen,
eventuell bin ich da etwas komplett falsch angeganegen.
Folgendes Problemchen offenbart sich in meinem Progrämmchen:
Bei jedem Request wird in einer bestimmten Bean immer wieder die Datenbankabfrage ausgeführt, obwohl ich die Action/Methode nicht aufrufe.
System: JBossAS7.1.1-final, javeEE6, mysql5.5, ejb3.1, JSF mit Primefaces
server.log
Die orderInfo-Daten werden abgerufen obwohl ich ganz andere Navigation vornehme. In diesem Fall navigiere ich zum user-profile, welches nichts mit der Bestellung etc. zu tun hat.
Managed Bean zur Bestellung:
OrderManager:
View:
Ich habe leider keine Ahnung woran das liegt. Andere Abfragen, für andere DataTables, habe ich genauso implementiert und dabei geschieht immer nur eine Abfrage. Eventuell kennt jemand diese Problematik oder kann am Code erkennen was da schief läuft. Es ist zwar kein schwerwiegendes Problem, aber nach eigenem wochenlangem suchen und failen brauche ich nun doch Hilfe bei der Angelegenheit.
Vielen Dank im Voraus.
eventuell bin ich da etwas komplett falsch angeganegen.
Folgendes Problemchen offenbart sich in meinem Progrämmchen:
Bei jedem Request wird in einer bestimmten Bean immer wieder die Datenbankabfrage ausgeführt, obwohl ich die Action/Methode nicht aufrufe.
System: JBossAS7.1.1-final, javeEE6, mysql5.5, ejb3.1, JSF mit Primefaces
server.log
Code:
07:42:25,568 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:25,576 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:26,783 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:26,787 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:26,792 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:26,798 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:26,806 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:26,813 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:26,824 INFO [com.webApplication.navigation.NavigationBean] (http--127.0.0.1-8080-6) selected content: PROFILE
07:42:29,359 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:29,362 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:29,365 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:29,368 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:29,373 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:29,377 INFO [com.webApplication.beans.OrderFormBean] (http--127.0.0.1-8080-6) attempting to load orderInfo data from database of user: dentist
07:42:29,381 INFO [com.webApplication.navigation.NavigationBean] (http--127.0.0.1-8080-6) selected content: PROFILE
Die orderInfo-Daten werden abgerufen obwohl ich ganz andere Navigation vornehme. In diesem Fall navigiere ich zum user-profile, welches nichts mit der Bestellung etc. zu tun hat.
Managed Bean zur Bestellung:
Java:
@Named
@RequestScoped
public class OrderFormBean{
Logger log = Logger.getLogger(OrderFormBean.class);
@Inject
OrderInfoManager orderManager;
List<OrderInfo> orders;
public List<OrderInfo> getOrders(HttpServletRequest request){
HttpSession session = request.getSession();
log.info("attempting to load orderInfo data from database of user: " + ((User)session.getAttribute("loggedInUser")).getLoginName());
orders = orderManager.getOrderByDentistNumber("5678");
return orders;
}
public List<OrderInfo> getOrders() {
return orders;
}
}
OrderManager:
Java:
@Stateless
public class OrderInfoManager {
@PersistenceContext(unitName = "MySqlDS")
EntityManager manager;
public void persistOrderInfo(OrderInfo given) throws OrderException {
try {
manager.persist(given);
} catch (Exception e) {
throw new OrderException("Unable to persist OrderInfo: " + given.getOrderNum(), e.getCause());
}
}
public List<OrderInfo> getOrderByDentistNumber(String dentistNum) {
List<OrderInfo> orders;
try {
orders = (List<OrderInfo>) manager.createNamedQuery("OrderInfo.byDentistNum").setParameter("dentistNum", dentistNum).getResultList();
} catch (NoResultException e) {
return null;
}
return orders;
}
}
View:
HTML:
<p:dataTable value="#{orderFormBean.getOrders(request)}"
var="o"
paginator="true"
rows="10">
<f:facet name="header">
Documents of orders
</f:facet>
<p:column width="100" headerText="Bestellnummer">
<h:outputText value="#{o.orderNum}"/>
</p:column>
<p:column width="100" headerText="Kunde">
<h:outputText value="#{o.dentist}"/>
</p:column>
<p:column width="100" headerText="Kundennummer">
<h:outputText value="#{o.dentistNum}"/>
</p:column>
<p:column width="100" headerText="Bestellbezeichnung">
<h:outputText value="#{o.orderDesc}"/>
</p:column>
<p:column width="100" headerText="Meterialbezeichnung">
<h:outputText value="#{o.materialDesc}"/>
</p:column>
<p:column width="100" headerText="Patient">
<h:outputText value="#{o.patientRef}"/>
</p:column>
<p:column width="100" style="white-space: nowrap" headerText="Liefertermin">
<h:outputText value="#{o.deliveryDate}"/>
</p:column>
<p:column width="100" headerText="Status">
<h:outputText value="#{o.orderState}"/>
</p:column>
<f:facet name="footer"><h:outputLabel value="#{fn:length(orderFormBean.orders)}"/>
<h:outputLabel value="#{res['orders.table.footer']}"/></f:facet>
</p:dataTable>
Ich habe leider keine Ahnung woran das liegt. Andere Abfragen, für andere DataTables, habe ich genauso implementiert und dabei geschieht immer nur eine Abfrage. Eventuell kennt jemand diese Problematik oder kann am Code erkennen was da schief läuft. Es ist zwar kein schwerwiegendes Problem, aber nach eigenem wochenlangem suchen und failen brauche ich nun doch Hilfe bei der Angelegenheit.
Vielen Dank im Voraus.