Update in Database without .merge operation
asc Oct 27, 2010 2:48 AMHi All,
I am facing one problem at the time of updating values in database.If the validation fails,its still updating the database.
The Code For this One which I have written :
For .xhtml file:
<s:decorate id="dtExpiryDateCertificate"
template="../layout/edit.xhtml">
<ui:define name="label">#{messages.lblDtExpiryDate}</ui:define>
<rich:calendar id="dtExpiryDateCertificateId"
styleClass="shortInput" value="#{certificate.dtExpiryDate}"
datePattern="dd/M/yy hh:mm a" event="onblur" />
</s:decorate>
For Action Class:
@Begin(join = true)
public void renewCertificateUpdate() {
long startDate = certificate.getDtStartDate().getTime();
long expiryDate = certificate.getDtExpiryDate().getTime();
log.info("Start Date Of Current Certificate ==" + startDate);
log.info("End Date Of the Certificate ==" + expiryDate);
boolean validationExpiryDateFailed = false;
if (startDate > expiryDate) {
log.info("Error message for start Date is greater than ExpiryDate");
facesMessages.addToControlFromResourceBundle("commonPanel",
"message.required.certificate.startDateExpiryDateRenew");
validationExpiryDateFailed = true;
}
if (!validationExpiryDateFailed) {
certificate = tenantEntityManager.merge(certificate);
fetchCertificateDetails();
overlayVisible = false;
facesMessages
.addFromResourceBundle("message.certificate.renew.successful");
} else {
log.info("Overlay Visible value " + overlayVisible);
log.info("Enter in not updating part");
ctx.setRollbackOnly();
}
log.info("End of renew certificate functionality");
log.info("value of overlay visible at the end of " + overlayVisible);
}
Thanks in advance.
I am facing one problem at the time of updating values in database.If the validation fails,its still updating the database.
The Code For this One which I have written :
For .xhtml file:
<s:decorate id="dtExpiryDateCertificate"
template="../layout/edit.xhtml">
<ui:define name="label">#{messages.lblDtExpiryDate}</ui:define>
<rich:calendar id="dtExpiryDateCertificateId"
styleClass="shortInput" value="#{certificate.dtExpiryDate}"
datePattern="dd/M/yy hh:mm a" event="onblur" />
</s:decorate>
For Action Class:
@Begin(join = true)
public void renewCertificateUpdate() {
long startDate = certificate.getDtStartDate().getTime();
long expiryDate = certificate.getDtExpiryDate().getTime();
log.info("Start Date Of Current Certificate ==" + startDate);
log.info("End Date Of the Certificate ==" + expiryDate);
boolean validationExpiryDateFailed = false;
if (startDate > expiryDate) {
log.info("Error message for start Date is greater than ExpiryDate");
facesMessages.addToControlFromResourceBundle("commonPanel",
"message.required.certificate.startDateExpiryDateRenew");
validationExpiryDateFailed = true;
}
if (!validationExpiryDateFailed) {
certificate = tenantEntityManager.merge(certificate);
fetchCertificateDetails();
overlayVisible = false;
facesMessages
.addFromResourceBundle("message.certificate.renew.successful");
} else {
log.info("Overlay Visible value " + overlayVisible);
log.info("Enter in not updating part");
ctx.setRollbackOnly();
}
log.info("End of renew certificate functionality");
log.info("value of overlay visible at the end of " + overlayVisible);
}
Thanks in advance.