[jboss-user] [Beginners Corner] - our Own Contraints @UserName

gopib do-not-reply at jboss.com
Mon Sep 29 04:05:39 EDT 2008


I wrote my own constraints @username If Username is registered and it is already present in the database , I should dispaly Username Already Exists , I wrote the code , but I am getting the below exception .


1.Exception during request processing:
Caused by java.lang.IllegalStateException with message: "Could not commit transaction"

2.Caused by javax.transaction.RollbackException with message: "[com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state"

------------------
Code:UserName.java
--------------------

package com.manam.mortgage.entity;

import java.lang.annotation.Documented;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;

import org.hibernate.validator.Validator;
import org.hibernate.validator.ValidatorClass;
@Documented
@ValidatorClass(UserNameValidator.class)
@Target({METHOD, FIELD})
@Retention(RUNTIME)
public @interface UserName {
        String tablename();
        String columnname();
        String message() default "validator.user";

}

----------------------
UserNaemValidator.java

---------------------


package com.manam.mortgage.entity;

import java.io.Serializable;
import java.util.List;


import org.hibernate.validator.Validator;


import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;

import org.hibernate.validator.PropertyConstraint;
import org.jboss.seam.Component;
import org.jboss.seam.annotations.In;

public class UserNameValidator implements Validator, Serializable {
        private String tablename;
        private String columnname;
        @In EntityManager entityManager;
        private UserName parameters;
        public void initialize(UserName parameters) {
                this.parameters = parameters;
                this.tablename=parameters.tablename();
                this.columnname = parameters.columnname();
        }
        public boolean isValid(Object v){
                if(v==null)
                        return true;
        String fieldvalue=(String)v;
        System.out.println("****************************");
        System.out.println("column name:"+columnname);
        System.out.println("field vale:"+fieldvalue);
        System.out.println("table name:"+tablename);
                  Query q=((EntityManager)Component.getInstance("entityManager")).createQuery("from " +tablename+ " where " +columnname+ " =:fieldvalue ");
        q.setParameter("fieldvalue",fieldvalue);
                          try{
                q.getSingleResult();
                return true;
        }catch(final NoResultException e){
                System.out.println("Not Exists Boss ........");
                return false;
        }
        }
}



Please help me any body, Thanking you.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4179283#4179283

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4179283



More information about the jboss-user mailing list