Revision 45425 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
H2SpatialSQLBuilder.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.sql.PreparedStatement; |
4 | 4 |
import java.sql.SQLException; |
5 |
import java.sql.Time; |
|
6 |
import java.sql.Timestamp; |
|
5 | 7 |
import java.text.MessageFormat; |
6 | 8 |
import java.util.ArrayList; |
7 | 9 |
import java.util.Date; |
... | ... | |
9 | 11 |
import java.util.Objects; |
10 | 12 |
import org.apache.commons.lang3.tuple.Pair; |
11 | 13 |
import org.gvsig.expressionevaluator.ExpressionBuilder.Parameter; |
14 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
|
12 | 15 |
import org.gvsig.expressionevaluator.Formatter; |
13 | 16 |
import org.gvsig.fmap.dal.DataTypes; |
14 | 17 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
... | ... | |
18 | 21 |
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase; |
19 | 22 |
import org.gvsig.fmap.geom.Geometry; |
20 | 23 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
24 |
import org.gvsig.tools.dataTypes.DataTypeUtils; |
|
21 | 25 |
import org.gvsig.tools.dispose.Disposable; |
22 | 26 |
|
23 | 27 |
public class H2SpatialSQLBuilder extends JDBCSQLBuilderBase { |
... | ... | |
337 | 341 |
if( column.isAutomatic() ) { |
338 | 342 |
builder.append(" AUTO_INCREMENT"); |
339 | 343 |
} |
340 |
if (column.getDefaultValue() == null) { |
|
344 |
if (column.getDefaultValue() == null || |
|
345 |
ExpressionUtils.isDynamicText(Objects.toString(column.getDefaultValue(), null))) { |
|
341 | 346 |
if (column.allowNulls()) { |
342 | 347 |
builder.append(" DEFAULT NULL"); |
343 | 348 |
} |
344 | 349 |
} else { |
345 |
if( column.getType() == DataTypes.DATE ) { |
|
346 |
builder.append(" DEFAULT ( TIMESTAMP '"); |
|
347 |
Date d = (Date) column.getDefaultValue(); |
|
348 |
builder.append(MessageFormat.format( "{0,date,yyyy-MM-dd HH:mm:ss.S}",d)); |
|
349 |
builder.append("' )"); |
|
350 |
} else { |
|
351 |
builder.append(" DEFAULT '"); |
|
352 |
builder.append(Objects.toString(column.getDefaultValue(),"")); |
|
353 |
builder.append("'"); |
|
350 |
switch(column.getType()) { |
|
351 |
case DataTypes.TIMESTAMP: |
|
352 |
builder.append(" DEFAULT ( TIMESTAMP '"); |
|
353 |
Timestamp dtimestamp = (Timestamp) DataTypeUtils.toTimestamp(column.getDefaultValue()); |
|
354 |
builder.append(MessageFormat.format( "{0,date,yyyy-MM-dd HH:mm:ss.S}",dtimestamp)); |
|
355 |
builder.append("' )"); |
|
356 |
break; |
|
357 |
case DataTypes.TIME: |
|
358 |
builder.append(" DEFAULT ( TIME '"); |
|
359 |
Time dtime = (Time) DataTypeUtils.toTime(column.getDefaultValue()); |
|
360 |
builder.append(MessageFormat.format( "{0,date,HH:mm:ss}",dtime)); |
|
361 |
builder.append("' )"); |
|
362 |
break; |
|
363 |
case DataTypes.DATE: |
|
364 |
builder.append(" DEFAULT ( DATE '"); |
|
365 |
java.sql.Date ddate = (java.sql.Date) DataTypeUtils.toDate(column.getDefaultValue()); |
|
366 |
builder.append(MessageFormat.format( "{0,date,yyyy-MM-dd}",ddate)); |
|
367 |
builder.append("' )"); |
|
368 |
break; |
|
369 |
default: |
|
370 |
builder.append(" DEFAULT '"); |
|
371 |
builder.append(Objects.toString(column.getDefaultValue(),"")); |
|
372 |
builder.append("'"); |
|
354 | 373 |
} |
355 | 374 |
} |
356 | 375 |
} |
Also available in: Unified diff