Ok.  I found a work around.  I would really appreciate it if someone ran into 
the same issue and if they have solved it. 
I created enum wrapper class that extends hibernate UserType class:


  | public class EnumVarcharUserType<E extends Enum<E>> implements UserType {
  |     private Class<E> clazz = null;
  | 
  |     protected EnumVarcharUserType(Class<E> c) {
  |         this.clazz = c;
  |     }
  | 
  |     private static final int[] SQL_TYPES = {Types.VARCHAR};
  | 
  |     public int[] sqlTypes() {
  |         return SQL_TYPES;
  |     }
  | 
  |     public Class returnedClass() {
  |         return clazz;
  |     }
  | 
  |     public Object nullSafeGet(ResultSet resultSet, String[] names, Object 
owner) throws
  |                                                                             
     HibernateException,
  |                                                                             
     SQLException {
  |         String name = resultSet.getString(names[0]);
  |         E result = null;
  |         if (!resultSet.wasNull()) {
  |             result = Enum.valueOf(clazz, name);
  |         }
  |         return result;
  |     }
  | 
  |     public void nullSafeSet(PreparedStatement preparedStatement, Object 
value, int index)
  |             throws HibernateException, SQLException {
  |         if (null == value) {
  |             preparedStatement.setNull(index, Types.VARCHAR);
  |         }
  |         else if (value instanceof Enum) {
  |             preparedStatement.setString(index, ((Enum) value).name());
  |         }
  |         else if (value instanceof String) {
  |             preparedStatement.setString(index, (String) value);
  |         }
  |     }
  | 
  |     public Object deepCopy(Object value) throws HibernateException {
  |         return value;
  |     }
  | 
  |     public boolean isMutable() {
  |         return false;
  |     }
  | 
  |     public Object assemble(Serializable cached, Object owner) throws 
HibernateException {
  |         return cached;
  |     }
  | 
  |     public Serializable disassemble(Object value) throws HibernateException 
{
  |         return (Serializable) value;
  |     }
  | 
  |     public Object replace(Object original, Object target, Object owner) 
throws HibernateException {
  |         return original;
  |     }
  | 
  |     public int hashCode(Object x) throws HibernateException {
  |         return x.hashCode();
  |     }
  | 
  |     public boolean equals(Object x, Object y) throws HibernateException {
  |         if (x == y) {
  |             return true;
  |         }
  |         if (null == x || null == y) {
  |             return false;
  |         }
  |         return x.equals(y);
  |     }
  | }
  | 
  | --------------------------------
  | public class InspectionPersonnelTypeUserType
  |         extends EnumVarcharUserType<InspectionPersonnelTypeEnum> {
  |     public InspectionPersonnelTypeUserType() {
  |         super(InspectionPersonnelTypeEnum.class);
  |     }
  | 
So I replaced all instance of InspectionPersonnelTypeEnum with this new wrapped 
class InspectionPersonnelTypeUserType.

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

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4085260
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to