[hibernate-commits] Hibernate SVN: r11365 - branches/Branch_3_2/Hibernate3/test/org/hibernate/test/where.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Thu Mar 29 09:25:48 EDT 2007


Author: steve.ebersole at jboss.com
Date: 2007-03-29 09:25:48 -0400 (Thu, 29 Mar 2007)
New Revision: 11365

Added:
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/where/NumericTrueFalseType.java
Modified:
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/where/File.hbm.xml
Log:
test suite fixes : postgresql (boolean handling)

Modified: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/where/File.hbm.xml
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/where/File.hbm.xml	2007-03-29 13:25:25 UTC (rev 11364)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/where/File.hbm.xml	2007-03-29 13:25:48 UTC (rev 11365)
@@ -6,15 +6,14 @@
 <!-- 
     Demonstrates use of a class-level where restriction
  -->
-<hibernate-mapping 
-		package="org.hibernate.test.where">
+<hibernate-mapping package="org.hibernate.test.where">
 
     <class name="File" where="deleted=0" table="T_FILE">
     	<id name="id">
     		<generator class="increment"/>
     	</id>
     	<property name="name"/>
-    	<property name="deleted"/>
+    	<property name="deleted" type="org.hibernate.test.where.NumericTrueFalseType"/>
     	<many-to-one name="parent"/>
     	<set name="children" inverse="true" where="deleted=0">
     		<key column="parent"/>

Added: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/where/NumericTrueFalseType.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/where/NumericTrueFalseType.java	                        (rev 0)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/where/NumericTrueFalseType.java	2007-03-29 13:25:48 UTC (rev 11365)
@@ -0,0 +1,53 @@
+package org.hibernate.test.where;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.PreparedStatement;
+import java.sql.Types;
+
+import org.hibernate.type.BooleanType;
+import org.hibernate.dialect.Dialect;
+
+/**
+ * Maps int db values to boolean java values.  Zero is considered false; any
+ * non-zero value is considered true.
+ *
+ * @author Steve Ebersole
+ */
+public class NumericTrueFalseType extends BooleanType {
+
+	public Object get(ResultSet rs, String name) throws SQLException {
+		int value = rs.getInt( name );
+		if ( rs.wasNull() ) {
+			return getDefaultValue();
+		}
+		else if ( value == 0 ) {
+			return Boolean.FALSE;
+		}
+		else {
+			return Boolean.TRUE;
+		}
+	}
+
+	public void set(PreparedStatement st, Object value, int index) throws SQLException {
+		if ( value == null ) {
+			st.setNull( index, Types.INTEGER );
+		}
+		else {
+			boolean bool = ( ( Boolean ) value ).booleanValue();
+			st.setInt( index, bool ? 1 : 0 );
+		}
+	}
+
+	public String objectToSQLString(Object value, Dialect dialect) throws Exception {
+		return ( ( Boolean ) value ).booleanValue() ? "1" : "0";
+	}
+
+	public int sqlType() {
+		return Types.INTEGER;
+	}
+
+	public String getName() {
+		return "numeric_boolean";
+	}
+}




More information about the hibernate-commits mailing list