I fixed this behavior with a simple UserType. Just annotate

  | import org.hibernate.annotations.Type;
  | ...
  | @Column(name = "XYZ")
  | @Type(type = "usertype.TrimmedStringType")
  | private String xyz;
  | 

The TrimmedStringType source is like this:

  | package usertype;
  | 
  | import java.io.Serializable;
  | import java.sql.PreparedStatement;
  | import java.sql.ResultSet;
  | import java.sql.SQLException;
  | import java.sql.Types;
  | 
  | import org.hibernate.HibernateException;
  | import org.hibernate.usertype.UserType;
  | 
  | 
  | public class TrimmedStringType implements UserType {
  | 
  |     private static final int[] SQL_TYPES = { Types.CHAR };
  |     
  |     public int[] sqlTypes() {
  |             return SQL_TYPES;
  |     }
  | 
  |     public Class returnedClass() {
  |             return String.class;
  |     }
  | 
  |     public Object assemble(Serializable cached, Object owner) throws 
HibernateException {
  |         return cached;
  |     }
  | 
  |     public Object deepCopy(Object obj) throws HibernateException {
  |             if (obj == null) {
  |             return null;
  |         }
  |         return new String((String) obj);
  |     }
  | 
  |     public Serializable disassemble(Object value) throws HibernateException 
{
  |         return (Serializable) value;
  |     }
  | 
  |     public boolean equals(Object x, Object y) throws HibernateException {
  |             return (x == y) || (x != null && y != null && (x.equals(y)));
  |     }
  | 
  |     public int hashCode(Object x) throws HibernateException {
  |             return x.hashCode();
  |     }
  | 
  |     public boolean isMutable() {
  |             return false;
  |     }
  | 
  |     public Object nullSafeGet(ResultSet rs, String[] names, Object obj) 
throws HibernateException, SQLException {
  |         String val = rs.getString(names[0]);
  |         return val != null ? val.trim() : null;
  |     }
  | 
  |     public void nullSafeSet(PreparedStatement pstmt, Object obj, int i) 
throws HibernateException, SQLException {
  |         pstmt.setString(i, (String)obj);
  |     }
  | 
  |     public Object replace(Object original, Object target, Object owner)  
throws HibernateException {
  |             return original;
  |     }
  | }
  | 

I hope this helps.

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

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

Reply via email to