All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hibernate.type.spi.BasicType Maven / Gradle / Ivy

There is a newer version: 7.0.0.Alpha3
Show newest version
/*
 * 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 .
 */
package org.hibernate.type.spi;

import java.util.Objects;

import org.hibernate.HibernateException;
import org.hibernate.Incubating;
import org.hibernate.metamodel.model.domain.spi.BasicTypeDescriptor;
import org.hibernate.sql.ast.produce.metamodel.spi.BasicValuedExpressableType;
import org.hibernate.type.Type;
import org.hibernate.type.descriptor.java.spi.BasicJavaDescriptor;
import org.hibernate.type.descriptor.sql.spi.SqlTypeDescriptor;

/**
 * Redefines the Type contract in terms of "basic" or "value" types which is
 * a mapping from a Java type (JavaTypeDescriptor) to a single SQL type
 * (SqlTypeDescriptor).
 *
 * @author Steve Ebersole
 *
 * @since 6.0
 */
@Incubating( since = "6.0" )
public interface BasicType
		extends Type, BasicValuedExpressableType, BasicTypeDescriptor {
	@Override
	BasicJavaDescriptor getJavaTypeDescriptor();

	/**
	 * The descriptor of the SQL type part of this basic-type
	 */
	SqlTypeDescriptor getSqlTypeDescriptor();

	@Override
	default PersistenceType getPersistenceType() {
		return PersistenceType.BASIC;
	}

	@Override
	default boolean areEqual(T x, T y) throws HibernateException {
		return Objects.equals( x, y );
	}

	@Override
	default Class getJavaType() {
		return getJavaTypeDescriptor().getJavaType();
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy