org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-core Show documentation
Show all versions of hibernate-core Show documentation
Hibernate's core ORM functionality
/*
* 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.boot.model.naming;
import org.hibernate.boot.model.source.spi.AttributePath;
/**
* Context for determining the implicit name of a "join column" (think
* {@link javax.persistence.JoinColumn}).
*
* @author Steve Ebersole
*
* @see javax.persistence.JoinColumn
*/
public interface ImplicitJoinColumnNameSource extends ImplicitNameSource {
public static enum Nature {
ELEMENT_COLLECTION,
ENTITY_COLLECTION,
ENTITY
}
public Nature getNature();
/**
* Access to entity naming information. For "normal" join columns, this will
* be the entity where the association is defined. For "inverse" join columns,
* this will be the target entity.
*
* @return Owning entity naming information
*/
public EntityNaming getEntityNaming();
/**
* Access to the name of the attribute that defines the association. For
* "normal" join columns, this will be the attribute where the association is
* defined. For "inverse" join columns, this will be the "mapped-by" attribute.
*
* @return The owning side's attribute name.
*/
public AttributePath getAttributePath();
/**
* Access the name of the table that is the target of the FK being described
*
* @return The referenced table name
*/
public Identifier getReferencedTableName();
/**
* Access the name of the column that is the target of the FK being described
*
* @return The referenced column name
*/
public Identifier getReferencedColumnName();
}