Hi, I am trying to implement a usertype for spaced trimmed String. I have done as below but during execution Hibernate just ignores my usertype.
Is there something else needed for my StringTrimmed usertype to be used instead of the default String? | ----- UserType ---------------------- | package au.edu.tisc.usertype; | | import java.io.Serializable; | import java.sql.PreparedStatement; | import java.sql.ResultSet; | import java.sql.SQLException; | | import org.hibernate.Hibernate; | import org.hibernate.HibernateException; | import org.hibernate.usertype.UserType; | | /** | * String user type with left and right spaces trimmed. | */ | public class StringTrimmed implements UserType { | | public int[] sqlTypes() { | return new int[] { Hibernate.STRING.sqlType() }; | } | | public Class returnedClass() { | return String.class; | } | | public boolean isMutable() { | return false; | } | | public Object deepCopy(Object value) { | | String stringValue = (String) value; | String copy = new String(stringValue); | return copy; | } | | public Serializable disassemble(Object value) { | return (Serializable) value; | } | | public Object assemble(Serializable cached, Object owner) { | return cached; | } | | public Object replace(Object original, Object target, Object owner) { | | String stringValue = (String) original; | String copy = new String(stringValue); | return copy; | } | | public boolean equals(Object x, Object y) { | | if (x == y) { | return true; | } | | if (x == null || y == null) { | return false; | } | | return x.equals(y); | } | | public int hashCode(Object x) { | return x.hashCode(); | } | | public Object nullSafeGet(ResultSet resultSet, String[] names, Object owner) throws SQLException { | | String stringValue = resultSet.getString(names[0]); | if (resultSet.wasNull()) { | return null; | } | | return stringValue; | } | | public void nullSafeSet(PreparedStatement statement, Object value, int index) throws HibernateException, SQLException { | | if (value == null) { | statement.setNull(index, Hibernate.STRING.sqlType()); | } else { | String untrimmedValue = (String) value; | statement.setString(index, untrimmedValue.trim()); | } | } | } | ----------------------------------------------------------- | | ----------------- Entity class using usertype ------------- | | @Entity | @Table(name = "Client") | @TypeDef(name="StringTrimmed", typeClass=au.edu.tisc.usertype.StringTrimmed.class) | public class Client implements java.io.Serializable { | | private String id; | ... | | @Type(type = "StringTrimmed") | private String notes; | | ... | | @Column(name = "Notes", length = 250) | @Length(max = 250) | public String getNotes() { | return this.notes; | } | | public void setNotes(String notes) { | this.notes = notes; | } | | } | View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4143763#4143763 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4143763 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user