下面列出了怎么用org.hibernate.type.descriptor.sql.VarcharTypeDescriptor的API类实例代码及写法,或者点击链接到github查看源代码。
public ClobType(Dialect dialect) {
super(new VarcharTypeDescriptor() {
@Override
public int getSqlType() {
//force the use of byte instead of oid on Postgres
return dialect instanceof PostgreSQL10Dialect
? Types.LONGVARCHAR
: Types.CLOB;
}
@Override
public boolean canBeRemapped() {
return false;
}
}, StringTypeDescriptor.INSTANCE);
}
@Override
protected SqlTypeDescriptor getSqlTypeDescriptorOverride(int sqlCode) {
// See HHH-12753
// It seems that DB2's JDBC 4.0 support as of 9.5 does not support the N-variant methods like
// NClob or NString. Therefore here we overwrite the sql type descriptors to use the non-N variants
// which are supported.
switch ( sqlCode ) {
case Types.NCHAR:
return CharTypeDescriptor.INSTANCE;
case Types.NCLOB:
if ( useInputStreamToInsertBlob() ) {
return ClobTypeDescriptor.STREAM_BINDING;
}
else {
return ClobTypeDescriptor.CLOB_BINDING;
}
case Types.NVARCHAR:
return VarcharTypeDescriptor.INSTANCE;
default:
return super.getSqlTypeDescriptorOverride( sqlCode );
}
}
@Override
protected SqlTypeDescriptor getSqlTypeDescriptorOverride(final int sqlCode) {
switch ( sqlCode ) {
case Types.CLOB:
return this.clobTypeDescriptor;
case Types.NCLOB:
return this.nClobTypeDescriptor;
case Types.BLOB:
return this.blobTypeDescriptor;
case Types.TINYINT:
// tinyint is unsigned on HANA
return SmallIntTypeDescriptor.INSTANCE;
case Types.BOOLEAN:
return this.useLegacyBooleanType ? BitTypeDescriptor.INSTANCE : BooleanTypeDescriptor.INSTANCE;
case Types.VARCHAR:
return this.useUnicodeStringTypes ? NVarcharTypeDescriptor.INSTANCE : VarcharTypeDescriptor.INSTANCE;
case Types.CHAR:
return this.useUnicodeStringTypes ? NCharTypeDescriptor.INSTANCE : CharTypeDescriptor.INSTANCE;
default:
return super.getSqlTypeDescriptorOverride( sqlCode );
}
}
public ZoneIdType(Configuration configuration) {
super(
VarcharTypeDescriptor.INSTANCE,
ZoneIdTypeDescriptor.INSTANCE,
configuration
);
}
public BitSetType() {
super( VarcharTypeDescriptor.INSTANCE, BitSetTypeDescriptor.INSTANCE );
}
public CommaDelimitedStringsType() {
super(
VarcharTypeDescriptor.INSTANCE,
new CommaDelimitedStringsJavaTypeDescriptor()
);
}
public ClassType() {
super( VarcharTypeDescriptor.INSTANCE, ClassTypeDescriptor.INSTANCE );
}
public StringType() {
super( VarcharTypeDescriptor.INSTANCE, StringTypeDescriptor.INSTANCE );
}
public CharArrayType() {
super( VarcharTypeDescriptor.INSTANCE, PrimitiveCharacterArrayTypeDescriptor.INSTANCE );
}
public CurrencyType() {
super( VarcharTypeDescriptor.INSTANCE, CurrencyTypeDescriptor.INSTANCE );
}
public CharacterArrayType() {
super( VarcharTypeDescriptor.INSTANCE, CharacterArrayTypeDescriptor.INSTANCE );
}
public UUIDCharType() {
super( VarcharTypeDescriptor.INSTANCE, UUIDTypeDescriptor.INSTANCE );
}
public TimeZoneType() {
super( VarcharTypeDescriptor.INSTANCE, TimeZoneTypeDescriptor.INSTANCE );
}
public LocaleType() {
super( VarcharTypeDescriptor.INSTANCE, LocaleTypeDescriptor.INSTANCE );
}
public UrlType() {
super( VarcharTypeDescriptor.INSTANCE, UrlTypeDescriptor.INSTANCE );
}
public ZoneIdType() {
super(
VarcharTypeDescriptor.INSTANCE,
ZoneIdTypeDescriptor.INSTANCE
);
}
public LocalDateStringType() {
super(VarcharTypeDescriptor.INSTANCE, LocalDateStringJavaDescriptor.INSTANCE);
}
public LocalDateStringType() {
super(VarcharTypeDescriptor.INSTANCE, LocalDateStringJavaDescriptor.INSTANCE);
}