This commit is contained in:
@@ -176,6 +176,12 @@ public class MySQLBuilder
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getBooleanDefault ()
|
||||||
|
{
|
||||||
|
return "0";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected BuildVisitor getBuildVisitor ()
|
protected BuildVisitor getBuildVisitor ()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -153,6 +153,12 @@ public abstract class SQLBuilder
|
|||||||
|
|
||||||
// TODO: handle precision and scale
|
// TODO: handle precision and scale
|
||||||
|
|
||||||
|
// sanity check nullability
|
||||||
|
if (nullable && field.getType().isPrimitive()) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
"Primitive Java type cannot be nullable [field=" + field.getName() + "]");
|
||||||
|
}
|
||||||
|
|
||||||
// handle nullability and uniqueness
|
// handle nullability and uniqueness
|
||||||
if (!nullable) {
|
if (!nullable) {
|
||||||
builder.append(" NOT NULL");
|
builder.append(" NOT NULL");
|
||||||
@@ -165,13 +171,18 @@ public abstract class SQLBuilder
|
|||||||
if (defval.length() > 0) {
|
if (defval.length() > 0) {
|
||||||
builder.append(" DEFAULT ").append(defval);
|
builder.append(" DEFAULT ").append(defval);
|
||||||
|
|
||||||
} else if (field.getType().equals(Integer.TYPE) || // TODO: how to do this properly?
|
} else if (field.getType().equals(Byte.TYPE) ||
|
||||||
field.getType().equals(Integer.class) ||
|
|
||||||
field.getType().equals(Byte.TYPE) ||
|
|
||||||
field.getType().equals(Byte.class) ||
|
|
||||||
field.getType().equals(Short.TYPE) ||
|
field.getType().equals(Short.TYPE) ||
|
||||||
field.getType().equals(Short.class)) {
|
field.getType().equals(Integer.TYPE) ||
|
||||||
|
field.getType().equals(Long.TYPE) ||
|
||||||
|
field.getType().equals(Float.TYPE) ||
|
||||||
|
field.getType().equals(Double.TYPE)) {
|
||||||
|
// Java primitive types cannot be null, so we provide a default value for these
|
||||||
|
// columns that matches Java's default for primitive types
|
||||||
builder.append(" DEFAULT 0");
|
builder.append(" DEFAULT 0");
|
||||||
|
|
||||||
|
} else if (field.getType().equals(Boolean.TYPE)) {
|
||||||
|
builder.append(" DEFAULT ").append(getBooleanDefault());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,6 +214,14 @@ public abstract class SQLBuilder
|
|||||||
public abstract void getFtsIndexes (
|
public abstract void getFtsIndexes (
|
||||||
Iterable<String> columns, Iterable<String> indexes, Set<String> target);
|
Iterable<String> columns, Iterable<String> indexes, Set<String> target);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the boolean literal that corresponds to false.
|
||||||
|
*/
|
||||||
|
protected String getBooleanDefault ()
|
||||||
|
{
|
||||||
|
return "false";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Overridden by subclasses to create a dialect-specific {@link BuildVisitor}.
|
* Overridden by subclasses to create a dialect-specific {@link BuildVisitor}.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user