type 的类图

AssociationType: 关联类型的 type,主要用于外键等相关
IdentifierType: 主键相关的类型 type
BasicType: 基础类型,例如 long,int,string 等基础类型
type 注册
基础类型的注册器
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.type;
import java.io.Serializable;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.hibernate.HibernateException;
import org.hibernate.internal.CoreLogging;
import org.hibernate.internal.CoreMessageLogger;
import org.hibernate.type.spi.TypeConfiguration;
import org.hibernate.usertype.CompositeUserType;
import org.hibernate.usertype.UserType;
/**
* A registry of {@link BasicType} instances
*
* @author Steve Ebersole
*/
public class BasicTypeRegistry implements Serializable {
private static final CoreMessageLogger LOG = CoreLogging.messageLogger( BasicTypeRegistry.class );
// TODO : analyze these sizing params; unfortunately this seems to be the only way to give a "concurrencyLevel"
// 使用 ConcurrentHashMap 保证线程安全
private Map<String, BasicType> registry = new ConcurrentHashMap<>( 100, .75f, 1 );
private boolean locked;
private TypeConfiguration typeConfiguration;
public BasicTypeRegistry(TypeConfiguration typeConfiguration){
this();
this.typeConfiguration = typeConfiguration;
}
// 构造方法,用于注册各种对应的基础类型
public BasicTypeRegistry() {
register( BooleanType.INSTANCE );
register( NumericBooleanType.INSTANCE );
register( TrueFalseType.INSTANCE );
register( YesNoType.INSTANCE );
register( ByteType.INSTANCE );
register( CharacterType.INSTANCE );
register( ShortType.INSTANCE );
register( IntegerType.INSTANCE );
register( LongType.INSTANCE );
register( FloatType.INSTANCE );
register( DoubleType.INSTANCE );
register( BigDecimalType.INSTANCE );
register( BigIntegerType.INSTANCE );
register(

最低0.47元/天 解锁文章
674

被折叠的 条评论
为什么被折叠?



