jpa 数据库方言_sqlite数据库方言配置

importjava.sql.Types;importorg.hibernate.dialect.Dialect;importorg.hibernate.dialect.function.StandardSQLFunction;importorg.hibernate.dialect.function.SQLFunctionTemplate;importorg.hibernate.dialect.function.VarArgsSQLFunction;importorg.hibernate.type.StandardBasicTypes;public class SQLiteDialect extendsDialect {publicSQLiteDialect() {super();

registerColumnType(Types.BIT,"integer");

registerColumnType(Types.TINYINT,"tinyint");

registerColumnType(Types.SMALLINT,"smallint");

registerColumnType(Types.INTEGER,"integer");

registerColumnType(Types.BIGINT,"bigint");

registerColumnType(Types.FLOAT,"float");

registerColumnType(Types.REAL,"real");

registerColumnType(Types.DOUBLE,"double");

registerColumnType(Types.NUMERIC,"numeric");

registerColumnType(Types.DECIMAL,"decimal");

registerColumnType(Types.CHAR,"char");

registerColumnType(Types.VARCHAR,"varchar");

registerColumnType(Types.LONGVARCHAR,"longvarchar");

registerColumnType(Types.DATE,"date");

registerColumnType(Types.TIME,"time");

registerColumnType(Types.TIMESTAMP,"timestamp");

registerColumnType(Types.BINARY,"blob");

registerColumnType(Types.VARBINARY,"blob");

registerColumnType(Types.LONGVARBINARY,"blob");//registerColumnType(Types.NULL, "null");

registerColumnType(Types.BLOB, "blob");

registerColumnType(Types.CLOB,"clob");

registerColumnType(Types.BOOLEAN,"integer");

registerFunction("concat", new VarArgsSQLFunction(StandardBasicTypes.STRING, "", "||", ""));

registerFunction("mod", new SQLFunctionTemplate(StandardBasicTypes.INTEGER, "?1 % ?2"));

registerFunction("substr", new StandardSQLFunction("substr", StandardBasicTypes.STRING));

registerFunction("substring", new StandardSQLFunction("substr", StandardBasicTypes.STRING));

}public booleansupportsIdentityColumns() {return true;

}public booleanhasDataTypeInIdentityColumn() {return false;

}publicString getIdentityColumnString() {return "integer";

}publicString getIdentitySelectString() {return "select last_insert_rowid()";

}public booleansupportsLimit() {return true;

}public String getLimitString(String query, booleanhasOffset) {return new StringBuffer(query.length() + 20).append(query).append(hasOffset ? " limit ? offset ?" : " limit ?")

.toString();

}public booleansupportsTemporaryTables() {return true;

}publicString getCreateTemporaryTableString() {return "create temporary table if not exists";

}public booleandropTemporaryTableAfterUse() {return false;

}public booleansupportsCurrentTimestampSelection() {return true;

}public booleanisCurrentTimestampSelectStringCallable() {return false;

}publicString getCurrentTimestampSelectString() {return "select current_timestamp";

}public booleansupportsUnionAll() {return true;

}public booleanhasAlterTable() {return false;

}public booleandropConstraints() {return false;

}publicString getAddColumnString() {return "add column";

}publicString getForUpdateString() {return "";

}public booleansupportsOuterJoinForUpdate() {return false;

}publicString getDropForeignKeyString() {throw new UnsupportedOperationException("No drop foreign key syntax supported by SQLiteDialect");

}publicString getAddForeignKeyConstraintString(String constraintName, String[] foreignKey, String referencedTable,

String[] primaryKey,booleanreferencesPrimaryKey) {throw new UnsupportedOperationException("No add foreign key syntax supported by SQLiteDialect");

}publicString getAddPrimaryKeyConstraintString(String constraintName) {throw new UnsupportedOperationException("No add primary key syntax supported by SQLiteDialect");

}public booleansupportsIfExistsBeforeTableName() {return true;

}public booleansupportsCascadeDelete() {return false;

}

@Overridepublic booleanbindLimitParametersInReverseOrder() {return true;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值