Revision 43388 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.h2/src/main/java/org/gvsig/fmap/dal/store/h2/H2SpatialSQLBuilder.java

View differences:

H2SpatialSQLBuilder.java
48 48

  
49 49
        config.set(SQLConfig.ST_GeomFromEWKB, "GeomFromWKB({0}, {1})");
50 50
        config.set(SQLConfig.ST_AsEWKB, "AsWKB(({0}))");        
51
        config.set(SQLConfig.ST_Intersects, "( (({0}) && ({1})) AND ST_Intersects(({0}),({1}) ))");  
51 52
        
52 53
        config.set(SQLConfig.lcase, "LOWER({0})");
53 54
        config.set(SQLConfig.ucase, "UPPER({0})");
......
79 80
        config.set(SQLConfig.type_FOLDER, "VARCHAR");        
80 81
    }
81 82

  
82
    public class SpatiaLiteTableNameBuilderBase extends TableNameBuilderBase {
83
    public class H2SpatialTableNameBuilderBase extends TableNameBuilderBase {
83 84

  
84 85
        @Override
85 86
        public boolean has_schema() {
......
93 94
        
94 95
    }
95 96
    
96
    protected class SpatiaLiteCreateTableBuilder extends CreateTableBuilderBase {
97
    protected class H2SpatialCreateTableBuilder extends CreateTableBuilderBase {
97 98

  
98 99
        @Override
99 100
        public List<String> toStrings() {
......
134 135
                        }
135 136
                    } else {
136 137
                        if( column.getType() == DataTypes.DATE ) {
137
                            builder.append(" DEFAULT ( date('");
138
                            builder.append(column.getDefaultValue().toString());
139
                            builder.append("') )");
138
                            builder.append(" DEFAULT ( TIMESTAMP '");
139
                            Date d = (Date) column.getDefaultValue();
140
                            builder.append(MessageFormat.format( "{0,date,yyyy-MM-dd HH:mm:ss.S}",d));
141
                            builder.append("' )");
140 142
                        } else {
141 143
                            builder.append(" DEFAULT '");
142 144
                            builder.append(column.getDefaultValue().toString());
......
178 180
        }
179 181
    }
180 182

  
181
    public class SpatiaLiteSelectBuilderBase extends SelectBuilderBase {
183
    public class H2SpatialSelectBuilderBase extends SelectBuilderBase {
182 184
        
183 185
        protected boolean isValid(StringBuilder message) {
184 186
            if( message == null ) {
......
197 199
        
198 200
        @Override
199 201
        public String toString() {
200
            // SpatiaLite requiere que si se especifica OFFSET deba especificarse
201
            // LIMIT obligatoriamente. Se le puede poner un LIMIT -1 cuando 
202
            // queramos un OFFSET sin especificar un LIMIT.
203 202
            StringBuilder builder = new StringBuilder();
204 203
            if( !isValid(builder) ) {
205 204
                throw new IllegalStateException(builder.toString());
......
261 260

  
262 261
    @Override
263 262
    public String bytearray(byte[] data) {
264
        // SpatiaLite usa un formato diferencte para especificar un array de 
263
        // H2Spatial usa un formato diferencte para especificar un array de 
265 264
        // bytes. En lugar de 0x... usa x'...' .
266 265
        StringBuilder builder = new StringBuilder();
267 266
        builder.append("x'");
......
343 342
            
344 343
    @Override
345 344
    protected TableNameBuilder createTableNameBuilder() {
346
        return new SpatiaLiteTableNameBuilderBase();
345
        return new H2SpatialTableNameBuilderBase();
347 346
    }
348 347
    
349 348
    @Override
350 349
    protected CreateTableBuilder createCreateTableBuilder() {
351
        return new SpatiaLiteCreateTableBuilder();
350
        return new H2SpatialCreateTableBuilder();
352 351
    }
353 352

  
354 353
    @Override
355 354
    protected SelectBuilder createSelectBuilder() {
356
        return new SpatiaLiteSelectBuilderBase();
355
        return new H2SpatialSelectBuilderBase();
357 356
    }
358 357

  
359 358
}

Also available in: Unified diff