[hibernate-commits] Hibernate SVN: r11364 - trunk/Hibernate3/test/org/hibernate/test/where.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Thu Mar 29 09:25:26 EDT 2007
Author: steve.ebersole at jboss.com
Date: 2007-03-29 09:25:25 -0400 (Thu, 29 Mar 2007)
New Revision: 11364
Added:
trunk/Hibernate3/test/org/hibernate/test/where/NumericTrueFalseType.java
Modified:
trunk/Hibernate3/test/org/hibernate/test/where/File.hbm.xml
Log:
test suite fixes : postgresql (boolean handling)
Modified: trunk/Hibernate3/test/org/hibernate/test/where/File.hbm.xml
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/where/File.hbm.xml 2007-03-29 13:09:51 UTC (rev 11363)
+++ trunk/Hibernate3/test/org/hibernate/test/where/File.hbm.xml 2007-03-29 13:25:25 UTC (rev 11364)
@@ -1,25 +1,24 @@
<?xml version="1.0"?>
-<!DOCTYPE hibernate-mapping PUBLIC
+<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-<!--
+<!--
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"/>
<one-to-many class="File"/>
</set>
- </class>
+ </class>
</hibernate-mapping>
Added: trunk/Hibernate3/test/org/hibernate/test/where/NumericTrueFalseType.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/where/NumericTrueFalseType.java (rev 0)
+++ trunk/Hibernate3/test/org/hibernate/test/where/NumericTrueFalseType.java 2007-03-29 13:25:25 UTC (rev 11364)
@@ -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