[JBoss Seam] - Re: h:datatable/el not displaying data
by paradigmza
Ok, this is everything... going to be long...
most of it was generated by seam-gen
Web.xml
<?xml version="1.0" ?>
| <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
| version="2.4">
|
| <!-- Ajax4jsf -->
|
| <context-param>
| <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
| <param-value>com.sun.facelets.FaceletViewHandler</param-value>
| </context-param>
|
| <context-param>
| <param-name>org.ajax4jsf.SKIN</param-name>
| <param-value>blueSky</param-value>
| </context-param>
|
| <context-param>
| <param-name>facelets.LIBRARIES</param-name>
| <param-value>/WEB-INF/tomahawk.taglib.xml</param-value>
| </context-param>
|
| <!-- Seam -->
|
| <listener>
| <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
| </listener>
|
| <filter>
| <filter-name>Seam Filter</filter-name>
| <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
| </filter>
|
| <filter-mapping>
| <filter-name>Seam Filter</filter-name>
| <url-pattern>/*</url-pattern>
| </filter-mapping>
|
| <servlet>
| <servlet-name>Seam Resource Servlet</servlet-name>
| <servlet-class>org.jboss.seam.servlet.ResourceServlet</servlet-class>
| </servlet>
|
| <servlet-mapping>
| <servlet-name>Seam Resource Servlet</servlet-name>
| <url-pattern>/seam/resource/*</url-pattern>
| </servlet-mapping>
|
| <!-- Facelets development mode (disable in production) -->
|
| <context-param>
| <param-name>facelets.DEVELOPMENT</param-name>
| <param-value>true</param-value>
| </context-param>
|
| <!-- JSF -->
|
| <context-param>
| <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
| <param-value>.xhtml</param-value>
| </context-param>
|
| <servlet>
| <servlet-name>Faces Servlet</servlet-name>
| <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
| <load-on-startup>1</load-on-startup>
| </servlet>
|
| <servlet-mapping>
| <servlet-name>Faces Servlet</servlet-name>
| <url-pattern>*.seam</url-pattern>
| </servlet-mapping>
|
| <servlet>
| <servlet-name>JustSwipeService</servlet-name>
| <servlet-class>
| coza.healthbridge.justswipe.beans.webservices.JustSwipeService
| </servlet-class>
| </servlet>
|
| <servlet-mapping>
| <servlet-name>JustSwipeService</servlet-name>
| <url-pattern>/JustSwipeService</url-pattern>
| </servlet-mapping>
|
| <filter>
| <filter-name>Seam Servlet Filter</filter-name>
| <filter-class>
| org.jboss.seam.servlet.SeamServletFilter
| </filter-class>
| </filter>
|
| <filter-mapping>
| <filter-name>Seam Servlet Filter</filter-name>
| <url-pattern>/JustSwipeService</url-pattern>
| </filter-mapping>
|
| <security-constraint>
| <display-name>Restrict raw XHTML Documents</display-name>
| <web-resource-collection>
| <web-resource-name>XHTML</web-resource-name>
| <url-pattern>*.xhtml</url-pattern>
| </web-resource-collection>
| <auth-constraint>
| <role-name>NONE</role-name>
| </auth-constraint>
| </security-constraint>
|
| <!-- MyFaces : Tomahawk extension -->
|
| <filter>
| <filter-name>MyFacesExtensionsFilter</filter-name>
| <filter-class>
| org.apache.myfaces.webapp.filter.ExtensionsFilter
| </filter-class>
| <init-param>
| <param-name>maxFileSize</param-name>
| <param-value>20m</param-value>
| </init-param>
| </filter>
|
| <filter-mapping>
| <filter-name>MyFacesExtensionsFilter</filter-name>
| <url-pattern>*.seam</url-pattern>
| </filter-mapping>
|
| </web-app>
|
components.xml
<?xml version="1.0" encoding="UTF-8"?>
| <components xmlns="http://jboss.com/products/seam/components"
| xmlns:core="http://jboss.com/products/seam/core"
| xmlns:persistence="http://jboss.com/products/seam/persistence"
| xmlns:drools="http://jboss.com/products/seam/drools"
| xmlns:security="http://jboss.com/products/seam/security"
| xmlns:mail="http://jboss.com/products/seam/mail"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation=
| "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.0.xsd
| http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.0.xsd
| http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.0.xsd
| http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.0.xsd
| http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.0.xsd
| http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.0.xsd">
|
| <core:init debug="@debug@" jndi-pattern="@jndiPattern@"/>
|
| <core:manager concurrent-request-timeout="500"
| conversation-timeout="120000"
| conversation-id-parameter="cid"/>
|
| <persistence:managed-persistence-context name="entityManager"
| auto-create="true"
| persistence-unit-jndi-name="java:/JustSwipeEntityManagerFactory"/>
|
| <drools:rule-base name="securityRules">
| <drools:rule-files>
| <value>/security.drl</value>
| </drools:rule-files>
| </drools:rule-base>
|
| <security:identity authenticate-method="#{authenticator.authenticate}"
| security-rules="#{securityRules}"/>
|
| <event type="org.jboss.seam.notLoggedIn">
| <action expression="#{redirect.captureCurrentView}"/>
| </event>
| <event type="org.jboss.seam.postAuthenticate">
| <action expression="#{redirect.returnToCapturedView}"/>
| </event>
|
| <mail:mail-session host="hbmisdb1" port="25" username="test" password="test" />
|
| <!-- For use with jBPM pageflow or process management -->
| <!--
| <bpm:jbpm>
| <bpm:process-definitions></bpm:process-definitions>
| <bpm:pageflow-definitions></bpm:pageflow-definitions>
| </bpm:jbpm>
| -->
|
| </components>
|
QuartzMDBBean.java
package coza.healthbridge.justswipe.beans.services;
|
| import javax.ejb.ActivationConfigProperty;
| import javax.ejb.EJB;
| import javax.ejb.MessageDriven;
|
| import org.jboss.annotation.ejb.Depends;
| import org.jboss.annotation.ejb.ResourceAdapter;
| import org.quartz.Job;
| import org.quartz.JobExecutionContext;
| import org.quartz.JobExecutionException;
|
| import coza.healthbridge.justswipe.beans.session.SendSettlementEmail;
|
| @MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "cronTrigger", propertyValue = "0 0/1 * * * ?") })
| @ResourceAdapter("quartz-ra.rar")
| @Depends("jboss.ha:service=HASingletonDeployer,type=Barrier")
| public class QuartzMDBBean implements Job {
|
| @EJB
| SendSettlementEmail email;
|
| public void execute(JobExecutionContext jobExecutionContext)
| throws JobExecutionException {
| email.sendEmails();
| }
| }
|
Interface
package coza.healthbridge.justswipe.beans.session;
|
| import javax.ejb.Local;
|
| @Local
| public interface SendSettlementEmail {
| public void sendEmails();
|
| }
The Bean
package coza.healthbridge.justswipe.beans.session;
|
| import java.util.Calendar;
| import java.util.Date;
| import java.util.GregorianCalendar;
| import java.util.List;
|
| import javax.ejb.Stateless;
|
| import org.jboss.seam.annotations.In;
| import org.jboss.seam.annotations.Logger;
| import org.jboss.seam.annotations.Name;
| import org.jboss.seam.faces.Renderer;
| import org.jboss.seam.log.Log;
|
| import coza.healthbridge.justswipe.beans.entity.Hbclient;
| import coza.healthbridge.justswipe.beans.entity.HbclientHome;
| import coza.healthbridge.justswipe.beans.entity.HbclientList;
| import coza.healthbridge.justswipe.beans.entity.SettlementList;
|
| @Stateless
| @Name("sendEmailsBean")
| public class SendSettlementEmailBean implements SendSettlementEmail {
| @In(create = true)
| HbclientList hbclientList;
|
| @In(create = true)
| HbclientHome hbclientHome;
|
| @In(create = true)
| SettlementList settlementList;
|
| @Logger
| Log log;
|
| @In(create = true)
| private Renderer renderer;
|
| public void sendEmails() {
| hbclientList.setNoLimit(true);
| List<Hbclient> clientList = hbclientList.getResultList();
| for (Hbclient hbclient : clientList) {
| if (hbclient.getSendSettlementEmail() != null
| && hbclient.getSendSettlementEmail()) {
| hbclientHome.setInstance(hbclient);
| settlementList.setClientPk(hbclient.getClientPk());
| settlementList.setMinDate(getMinDate());
| settlementList.setMaxDate(getMaxDate());
| sendEmail();
| }
| }
| }
|
| private void sendEmail() {
| try {
| renderer.render("/emails/settlementReport.xhtml");
| log.debug("Email Sent");
| } catch (Exception e) {
| log.error("could not EMAIL:", e);
| }
| }
|
| private Date getMinDate() {
| Calendar cal = new GregorianCalendar();
| cal.set(Calendar.DATE, 1);
| cal.set(Calendar.HOUR, 0);
| cal.set(Calendar.MINUTE, 0);
| cal.set(Calendar.SECOND, 0);
| cal.set(Calendar.MILLISECOND, 0);
| return cal.getTime();
| }
|
| private Date getMaxDate() {
| Calendar cal = new GregorianCalendar();
| cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE));
| cal.set(Calendar.HOUR, 0);
| cal.set(Calendar.MINUTE, 0);
| cal.set(Calendar.SECOND, 0);
| cal.set(Calendar.MILLISECOND, 0);
| return cal.getTime();
| }
| }
|
The email
<m:message xmlns="http://www.w3.org/1999/xhtml"
| xmlns:m="http://jboss.com/products/seam/mail"
| xmlns:p="http://jboss.com/products/seam/pdf"
| xmlns:ui="http://java.sun.com/jsf/facelets"
| xmlns:f="http://java.sun.com/jsf/core"
| xmlns:h="http://java.sun.com/jsf/html">
| <m:from name="Test"
| address="test(a)healthbridge.co.za" />
| <m:to>#{hbclientHome.instance.email}</m:to>
| <m:subject>Test: #{settlementList.month}</m:subject>
|
| <m:body>
|
| <ui:include src="/pages/reports/SettlementData.xhtml" />
|
| </m:body>
| </m:message>
|
the Data
<h:panelGroup xmlns="http://www.w3.org/1999/xhtml"
| xmlns:ui="http://java.sun.com/jsf/facelets"
| xmlns:h="http://java.sun.com/jsf/html"
| xmlns:f="http://java.sun.com/jsf/core"
| xmlns:s="http://jboss.com/products/seam/taglib"
| xmlns:rich="http://richfaces.ajax4jsf.org/rich" id="ajaxDropDownArea">
| <h:outputText value="No settlement Data for this month"
| rendered="#{empty settlementList.resultList}" />
| <h:dataTable id="settlementList" var="settlement"
| value="#{settlementList.resultList}"
| rendered="#{not empty settlementList.resultList}" cellpadding="5"
| cellspacing="0" border="1" width="100%"
| style="border-collapse:collapse;border-color=#B2B2B2"
| headerClass="table_header" rowClasses="row1,row2"
| footerClass="boldFont txt_black_12 columnRight hiLight">
|
| <h:column rendered="#{merchantNoDropDown.totalBranches > 1}">
| <h:outputText styleClass="txt_black_11"
| value="#{settlement.merchant.friendlyName}" />
| <h:outputText styleClass="txt_black_11"
| value="#{settlement.merchant.merchantNum}"
| rendered="#{settlement.merchant.friendlyName == null}" />
| </h:column>
| <h:column>
| <s:link view="/#{empty from ? '/pages/reports/Swipes' : from}.xhtml"
| id="settlement" propagation="nest" styleClass="link_orange_11">
| <f:param name="settlementSettlementPk"
| value="#{settlement.settlementPk}" />
| <h:outputText value="#{settlement.paymentDate}">
| <f:convertDateTime pattern="dd MMMMM yyyy" timeZone="CAT" />
| </h:outputText>
| </s:link>
| </h:column>
| <h:column>
| <h:outputText styleClass="txt_black_11" value="#{settlement.eftnum}" />
| </h:column>
| <h:column>
| <h:outputText styleClass="txt_black_11"
| value="#{settlement.totalPaymentAmt/100}">
| <f:convertNumber type="currency" currencySymbol="R " />
| </h:outputText>
| </h:column>
| <h:column>
| <h:outputText styleClass="txt_black_11 columnRight"
| value="#{settlement.totalDebitCardAmt/100}">
| <f:convertNumber type="currency" currencySymbol="R " />
| </h:outputText>
| </h:column>
| <h:column>
| <h:outputText styleClass="txt_black_11"
| value="#{settlement.totalCreditCardAmt/100}">
| <f:convertNumber type="currency" currencySymbol="R " />
| </h:outputText>
| </h:column>
| </h:dataTable>
| </h:panelGroup>
|
|
The settlementsList
package coza.healthbridge.justswipe.beans.entity;
|
| import org.jboss.seam.ScopeType;
| import org.jboss.seam.annotations.In;
| import org.jboss.seam.annotations.Name;
| import org.jboss.seam.annotations.Out;
| import org.jboss.seam.framework.EntityQuery;
|
| import coza.healthbridge.justswipe.beans.session.InfoSelected;
| import coza.healthbridge.justswipe.beans.session.InfoSelectedBean;
|
| import java.util.Calendar;
| import java.util.Date;
| import java.util.GregorianCalendar;
| import java.util.List;
| import java.util.Arrays;
|
| @Name("settlementList")
| public class SettlementList extends EntityQuery {
|
| @In(create = true)
| InfoSelected infoSelected;
|
| private static final String[] RESTRICTIONS = {
| "lower(settlement.originalMessageId) like concat(lower(#{settlementList.settlement.originalMessageId}),'%')",
| "lower(settlement.merchant.merchantPk) = #{selectedMerchant.merchantPk}",
| "lower(settlement.merchant.hbclient.clientPk) = #{loggedInClient.clientPk}",
| "lower(settlement.settlementDate) >= #{infoSelected.minDate}",
| "lower(settlement.settlementDate) <= #{infoSelected.maxDate}",
| "lower(settlement.merchant.hbclient.clientPk) = #{settlementList.clientPk}",
| "lower(settlement.settlementDate) >= #{settlementList.minDate}",
| "lower(settlement.settlementDate) <= #{settlementList.maxDate}",
| "lower(settlement.settlementPk) < #{settlementList.lessThanPk}",
| "lower(settlement.settlementPk) > #{settlementList.greaterThanPk}",
| "lower(settlement.eftnum) like concat(lower(#{settlementList.settlement.eftnum}),'%')", };
|
| private Settlement settlement = new Settlement();
|
| private Integer lessThanPk;
|
| private Integer greaterThanPk;
|
| private Date minDate;
|
| private Date maxDate;
|
| private Integer clientPk;
|
| private boolean overrideMaxResults;
|
| @Override
| public String getEjbql() {
| return "select settlement from Settlement settlement";
| }
|
| @Override
| public Integer getMaxResults() {
| if (overrideMaxResults) {
| return super.getMaxResults();
| }
| return 200;
| }
|
| public Settlement getSettlement() {
| return settlement;
| }
|
| @Override
| public List<String> getRestrictions() {
| return Arrays.asList(RESTRICTIONS);
| }
|
| public int getTotalsTotalPaymentAmount() {
| List<Settlement> results = getResultList();
| int totalSum = 0;
| for (Settlement settlement : results) {
| totalSum += settlement.getTotalPaymentAmt();
| }
| return totalSum;
| }
|
| public int getTotalsTotalCreditAmount() {
| List<Settlement> results = getResultList();
| int totalSum = 0;
| for (Settlement settlement : results) {
| totalSum += settlement.getTotalCreditCardAmt();
| }
| return totalSum;
| }
|
| public int getTotalsTotalDebitAmount() {
| List<Settlement> results = getResultList();
| int totalSum = 0;
| for (Settlement settlement : results) {
| totalSum += settlement.getTotalDebitCardAmt();
| }
| return totalSum;
| }
|
| public Date getLatestSettlementDate() {
| infoSelected.resetDates();
| overrideMaxResults = true;
| setMaxResults(1);
| setOrder("settlement.settlementDate desc");
| List<Settlement> list = getResultList();
| overrideMaxResults = false;
| if (list != null && list.size() == 1) {
| Settlement set = list.get(0);
| return set.getPaymentDate();
| }
| return null;
| }
|
| public Date getMonth() {
| List<Settlement> list = getResultList();
| if (list != null && list.size() >= 1) {
| Settlement set = list.get(0);
| return set.getPaymentDate();
| }
| return null;
| }
|
| public Date getLastDayOfMonth() {
| overrideMaxResults = true;
| setMaxResults(1);
| setOrder("settlement.settlementDate desc");
| List<Settlement> list = getResultList();
| overrideMaxResults = false;
| if (list != null && list.size() >= 1) {
| Settlement set = list.get(0);
| Date s = set.getPaymentDate();
| Calendar cal = Calendar.getInstance();
| cal.setTimeInMillis(s.getTime());
| cal.set(Calendar.DAY_OF_MONTH, cal
| .getActualMaximum(Calendar.DAY_OF_MONTH));
| return cal.getTime();
| }
| return null;
| }
|
| /**
| * @return the greaterThanPk
| */
| public Integer getGreaterThanPk() {
| return greaterThanPk;
| }
|
| /**
| * @param greaterThanPk
| * the greaterThanPk to set
| */
| public void setGreaterThanPk(Integer greaterThanPk) {
| this.greaterThanPk = greaterThanPk;
| }
|
| /**
| * @return the lessThanPk
| */
| public Integer getLessThanPk() {
| return lessThanPk;
| }
|
| /**
| * @param lessThanPk
| * the lessThanPk to set
| */
| public void setLessThanPk(Integer lessThanPk) {
| this.lessThanPk = lessThanPk;
| }
|
| /**
| * @return the clientPk
| */
| public Integer getClientPk() {
| return clientPk;
| }
|
| /**
| * @param clientPk
| * the clientPk to set
| */
| public void setClientPk(Integer clientPk) {
| this.clientPk = clientPk;
| }
|
| /**
| * @return the maxDate
| */
| public Date getMaxDate() {
| return maxDate;
| }
|
| /**
| * @param maxDate
| * the maxDate to set
| */
| public void setMaxDate(Date maxDate) {
| this.maxDate = maxDate;
| }
|
| /**
| * @return the minDate
| */
| public Date getMinDate() {
| return minDate;
| }
|
| /**
| * @param minDate
| * the minDate to set
| */
| public void setMinDate(Date minDate) {
| this.minDate = minDate;
| }
|
| }
|
and finally... the entity
package coza.healthbridge.justswipe.beans.entity;
| // Generated 2007/05/31 10:15:13 by Hibernate Tools 3.2.0.b9
|
| import java.util.Date;
| import java.util.HashSet;
| import java.util.Set;
|
| import javax.persistence.Basic;
| import javax.persistence.CascadeType;
| import javax.persistence.Column;
| import javax.persistence.Entity;
| import javax.persistence.FetchType;
| import javax.persistence.GeneratedValue;
| import javax.persistence.Id;
| import javax.persistence.JoinColumn;
| import javax.persistence.ManyToOne;
| import javax.persistence.OneToMany;
| import javax.persistence.Table;
| import javax.persistence.Temporal;
| import javax.persistence.TemporalType;
| import javax.persistence.UniqueConstraint;
| import org.hibernate.validator.Length;
| import org.hibernate.validator.NotNull;
|
| /**
| * Settlement generated by hbm2java
| */
| @Entity
| @Table(name = "settlement", catalog = "justswipe", uniqueConstraints = @UniqueConstraint(columnNames = "OriginalMessageID"))
| public class Settlement implements java.io.Serializable {
|
| private int settlementPk;
| private Settlementtype settlementtype;
| private Merchantbranch merchantbranch;
| private Bank bank;
| private Merchant merchant;
| private String originalMessageId;
| private Date settlementDate;
| private Date paymentDate;
| private int accNum;
| private String eftnum;
| private int totalPaymentAmt;
| private int totalDebitCardAmt;
| private int totalCreditCardAmt;
| private Set<Transaction> transactions = new HashSet<Transaction>(0);
|
| public Settlement() {
| }
|
| public Settlement(int settlementPk, Settlementtype settlementtype,
| Merchant merchant, String originalMessageId, Date settlementDate,
| int accNum, int totalPaymentAmt, int totalDebitCardAmt,
| int totalCreditCardAmt) {
| this.settlementPk = settlementPk;
| this.settlementtype = settlementtype;
| this.merchant = merchant;
| this.originalMessageId = originalMessageId;
| this.settlementDate = settlementDate;
| this.accNum = accNum;
| this.totalPaymentAmt = totalPaymentAmt;
| this.totalDebitCardAmt = totalDebitCardAmt;
| this.totalCreditCardAmt = totalCreditCardAmt;
| }
| public Settlement(int settlementPk, Settlementtype settlementtype,
| Merchantbranch merchantbranch, Bank bank, Merchant merchant,
| String originalMessageId, Date settlementDate, Date paymentDate,
| int accNum, String eftnum, int totalPaymentAmt,
| int totalDebitCardAmt, int totalCreditCardAmt,
| Set<Transaction> transactions) {
| this.settlementPk = settlementPk;
| this.settlementtype = settlementtype;
| this.merchantbranch = merchantbranch;
| this.bank = bank;
| this.merchant = merchant;
| this.originalMessageId = originalMessageId;
| this.settlementDate = settlementDate;
| this.paymentDate = paymentDate;
| this.accNum = accNum;
| this.eftnum = eftnum;
| this.totalPaymentAmt = totalPaymentAmt;
| this.totalDebitCardAmt = totalDebitCardAmt;
| this.totalCreditCardAmt = totalCreditCardAmt;
| this.transactions = transactions;
| }
|
| @Id
| @Column(name = "SettlementPk", unique = true, nullable = false)
| @NotNull
| @GeneratedValue
| public int getSettlementPk() {
| return this.settlementPk;
| }
|
| public void setSettlementPk(int settlementPk) {
| this.settlementPk = settlementPk;
| }
| @ManyToOne(fetch = FetchType.LAZY)
| @JoinColumn(name = "SettlementTypeFk", nullable = false)
| @NotNull
| public Settlementtype getSettlementtype() {
| return this.settlementtype;
| }
|
| public void setSettlementtype(Settlementtype settlementtype) {
| this.settlementtype = settlementtype;
| }
| @ManyToOne(fetch = FetchType.LAZY)
| @JoinColumn(name = "MerchantBranchFk")
| public Merchantbranch getMerchantbranch() {
| return this.merchantbranch;
| }
|
| public void setMerchantbranch(Merchantbranch merchantbranch) {
| this.merchantbranch = merchantbranch;
| }
| @ManyToOne(fetch = FetchType.LAZY)
| @JoinColumn(name = "BankFk")
| public Bank getBank() {
| return this.bank;
| }
|
| public void setBank(Bank bank) {
| this.bank = bank;
| }
| @ManyToOne(fetch = FetchType.LAZY)
| @JoinColumn(name = "MerchantFk", nullable = false)
| @NotNull
| public Merchant getMerchant() {
| return this.merchant;
| }
|
| public void setMerchant(Merchant merchant) {
| this.merchant = merchant;
| }
|
| @Basic
| @Column(name = "OriginalMessageID", unique = true, nullable = false, length = 22,columnDefinition="char")
| @NotNull
| @Length(max = 22)
| public String getOriginalMessageId() {
| return this.originalMessageId;
| }
|
| public void setOriginalMessageId(String originalMessageId) {
| this.originalMessageId = originalMessageId;
| }
| @Temporal(TemporalType.TIMESTAMP)
| @Column(name = "SettlementDate", nullable = false, length = 0)
| @NotNull
| public Date getSettlementDate() {
| return this.settlementDate;
| }
|
| public void setSettlementDate(Date settlementDate) {
| this.settlementDate = settlementDate;
| }
| @Temporal(TemporalType.TIMESTAMP)
| @Column(name = "PaymentDate", length = 0)
| public Date getPaymentDate() {
| return this.paymentDate;
| }
|
| public void setPaymentDate(Date paymentDate) {
| this.paymentDate = paymentDate;
| }
|
| @Column(name = "AccNum", nullable = false)
| @NotNull
| public int getAccNum() {
| return this.accNum;
| }
|
| public void setAccNum(int accNum) {
| this.accNum = accNum;
| }
|
| @Column(name = "EFTNum", length = 40)
| @Length(max = 40)
| public String getEftnum() {
| return this.eftnum;
| }
|
| public void setEftnum(String eftnum) {
| this.eftnum = eftnum;
| }
|
| @Column(name = "TotalPaymentAmt", nullable = false)
| @NotNull
| public int getTotalPaymentAmt() {
| return this.totalPaymentAmt;
| }
|
| public void setTotalPaymentAmt(int totalPaymentAmt) {
| this.totalPaymentAmt = totalPaymentAmt;
| }
|
| @Column(name = "TotalDebitCardAmt", nullable = false)
| @NotNull
| public int getTotalDebitCardAmt() {
| return this.totalDebitCardAmt;
| }
|
| public void setTotalDebitCardAmt(int totalDebitCardAmt) {
| this.totalDebitCardAmt = totalDebitCardAmt;
| }
|
| @Column(name = "TotalCreditCardAmt", nullable = false)
| @NotNull
| public int getTotalCreditCardAmt() {
| return this.totalCreditCardAmt;
| }
|
| public void setTotalCreditCardAmt(int totalCreditCardAmt) {
| this.totalCreditCardAmt = totalCreditCardAmt;
| }
| @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "settlement")
| public Set<Transaction> getTransactions() {
| return this.transactions;
| }
|
| public void setTransactions(Set<Transaction> transactions) {
| this.transactions = transactions;
| }
|
| }
|
What is confusing me... is that all this code is working perfectly via the front end... it only goes wrong when the Cronjob sends the email.
Thanks.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4070536#4070536
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4070536
18Â years, 8Â months
[JBoss Seam] - Re: Problem calling resultList.size() on framework entity-qu
by pete.muirï¼ jboss.org
Here is the patch to reproduce
### Eclipse Workspace Patch 1.0
| #P jboss-seam
| Index: examples/ui/resources/WEB-INF/components.xml
| ===================================================================
| RCS file: /cvsroot/jboss/jboss-seam/examples/ui/resources/WEB-INF/components.xml,v
| retrieving revision 1.9
| diff -u -r1.9 components.xml
| --- examples/ui/resources/WEB-INF/components.xml 1 Aug 2007 11:49:57 -0000 1.9
| +++ examples/ui/resources/WEB-INF/components.xml 3 Aug 2007 12:11:52 -0000
| @@ -21,7 +21,7 @@
|
| <framework:entity-home name="personHome" entity-class="org.jboss.seam.example.ui.Person" />
|
| - <framework:entity-query name="colours" ejbql="select c from Colour c" />
| + <framework:entity-query name="colours" ejbql="select c from Colour c" max-results="2" />
|
| <framework:entity-query name="books" ejbql="select b from Book b" />
|
| Index: examples/ui/view/index.xhtml
| ===================================================================
| RCS file: /cvsroot/jboss/jboss-seam/examples/ui/view/index.xhtml,v
| retrieving revision 1.4
| diff -u -r1.4 index.xhtml
| --- examples/ui/view/index.xhtml 13 Jun 2007 23:49:05 -0000 1.4
| +++ examples/ui/view/index.xhtml 3 Aug 2007 12:11:52 -0000
| @@ -10,5 +10,6 @@
| <ui:param name="tagName" value="" />
| <ui:define name="body">
| <p>Seam ui components</p>
| + <h:outputText value="#{colours.resultList.size()}" />
| </ui:define>
| </ui:composition>
| \ No newline at end of file
|
And visit the index.xhtml page on the ui example
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4070535#4070535
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4070535
18Â years, 8Â months
[JBoss jBPM] - Lifecycle of process and task instances
by heckelmeister
Hello everybody!
I wonder about the lifecycle of process instances, subprocess instances and task instances and how they are related to each other.
For the process instances I identified four states: started ? suspended ? ended
-> A process instance is started as soon it is in the database
-> If a process instance is suspended, no tasks can be done and it can?t be signalled. What is with timers in suspended state. Do they continue or are they suspended as well?
-> Ended means a process instance completed normally
This should be the same for subprocesses instances as they are normal process instances at first.
For task instances the documentation (chapter 11.2.1) describes three states: created ? started ? ended.
But in fact there seem to be more states: suspended ? cancelled ? open.
-> Created should be clear, this is as soon as an entry in the taskinstance table in the database is made.
-> What means the started state? Who or what is supposed to start a task instance when? Only the actor?
-> Suspended is like process instance suspension but just for the single task. Isn?t it?
-> Ended is the task instance is ended normally (the taskinstance end date in the database is not null)
-> Cancelled is the task was cancelled (the taskinstance end date is not null AND the iscanceled flag is set in the database)
-> What is the open state for? (the isopen flag is set in the database)
Now: How do states of process instance, subprocess instance and task instances of the process instance and any subprocess instance relate?
What do I mean? For example:
->When ending a process instance, are all subprocess instances and task instances of the process and subprocess instances ended as well?
->Does a suspended process instance mean that also all subprocess instances of that process instance are suspended and all tasks of the process and subprocess instances as well?
So as you see I still didn?t get the whole picture yet, despite digging into the documentation and source code and searching the forum (yes, I found some hints but some have been contradictory, though). Therefore I would really appreciate one of you, maybe even one of the developers, giving me this picture. Probably I am also not the only one seeking for it.
Thanks in advance,
Markus
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4070529#4070529
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4070529
18Â years, 8Â months