/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* Copyright (c) 2014, Red Hat, Inc. and/or its affiliates or third-party contributors as
* indicated by the @author tags or express copyright attribution
* statements applied by the authors. All third-party contributions are
* distributed under license by Red Hat, Inc.
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU
* Lesser General Public License, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this distribution; if not, write to:
* Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301 USA
*/
package org.hibernate.cfg.naming;
A
Author: Gail Badner
/**
* A
* @author Gail Badner
*/
public interface NamingStrategyDelegate {
Determine the name of a entity's primary table when a name is not explicitly configured.
Params: - entityName – The fully qualified entity name
- jpaEntityName – The entity name provided by the
Entity
name
attribute; or, if not mapped in this way, then the unqualified entity name.
Returns: The implicit table name.
/**
* Determine the name of a entity's primary table when a name is not explicitly configured.
*
* @param entityName The fully qualified entity name
* @param jpaEntityName The entity name provided by the {@link javax.persistence.Entity}
* {@code name} attribute; or, if not mapped in this way, then the
* unqualified entity name.
*
* @return The implicit table name.
*/
public String determineImplicitPrimaryTableName(String entityName, String jpaEntityName);
Determine the name of a property's column when a name is not explicitly configured.
Params: - propertyPath – The property path (not qualified by the entity name)
Returns: The implicit column name.
/**
* Determine the name of a property's column when a name is not explicitly configured.
*
* @param propertyPath The property path (not qualified by the entity name)
* @return The implicit column name.
*/
public String determineImplicitPropertyColumnName(String propertyPath);
Determine the name of a collection table for a collection of (non-entity) values
when a name is not explicitly configured.
Params: - ownerEntityName – The fully qualified entity name for the entity that owns the collection.
- ownerJpaEntityName – The entity name provided by the
Entity
name
attribute for the entity that owns the collection; or, if not mapped in this way, then the unqualified owner entity name. - ownerEntityTable – The owner entity's physical primary table name;
- propertyPath – The property path (not qualified by the entity name),
Returns: The implicit table name.
/**
* Determine the name of a collection table for a collection of (non-entity) values
* when a name is not explicitly configured.
*
* @param ownerEntityName The fully qualified entity name for the entity that owns the collection.
* @param ownerJpaEntityName The entity name provided by the {@link javax.persistence.Entity}
* {@code name} attribute for the entity that owns the collection;
* or, if not mapped in this way, then the unqualified owner entity name.
* @param ownerEntityTable The owner entity's physical primary table name;
* @param propertyPath The property path (not qualified by the entity name),
* @return The implicit table name.
*/
public String determineImplicitElementCollectionTableName(
String ownerEntityName,
String ownerJpaEntityName,
String ownerEntityTable,
String propertyPath);
Determine the name of the join column in a collection table for
a collection of (non-entity) values when a name is not explicitly configured.
Params: - ownerEntityName – The fully qualified name of the entity that owns the collection.
- ownerJpaEntityName – The entity name provided by the
Entity
name
attribute for the entity that owns the collection; or, if not mapped in this way, then the unqualified entity name. - ownerEntityTable – The owner entity's physical primary table name;
- referencedColumnName – The physical name of the column that the join column references.
- propertyPath – The property path (not qualified by the entity name),
Returns: The implicit column name.
/**
* Determine the name of the join column in a collection table for
* a collection of (non-entity) values when a name is not explicitly configured.
*
* @param ownerEntityName The fully qualified name of the entity that owns the collection.
* @param ownerJpaEntityName The entity name provided by the {@link javax.persistence.Entity}
* {@code name} attribute for the entity that owns the collection;
* or, if not mapped in this way, then the unqualified entity name.
* @param ownerEntityTable The owner entity's physical primary table name;
* @param referencedColumnName The physical name of the column that the join column references.
* @param propertyPath The property path (not qualified by the entity name),
* @return The implicit column name.
*/
public String determineImplicitElementCollectionJoinColumnName(
String ownerEntityName,
String ownerJpaEntityName,
String ownerEntityTable,
String referencedColumnName,
String propertyPath);
Determine the name of the join table for an entity (singular or plural) association when
a name is not explicitly configured.
Params: - ownerEntityName – The fully qualified name of the entity that owns the association;.
- ownerJpaEntityName – The entity name provided by the
Entity
name
attribute for the entity that owns the association; or, if not mapped in this way, then the unqualified owner entity name. - ownerEntityTable – The owner entity's physical primary table name;
- associatedEntityName – The fully qualified name of the associated entity.
- associatedJpaEntityName – The entity name provided by the
Entity
name
attribute for the associated entity; or, if not mapped in this way, then the unqualified associated entity name. - associatedEntityTable – The associated entity's physical primary table name;
- propertyPath – The property path (not qualified by the entity name),
Returns: The implicit table name.
/**
* Determine the name of the join table for an entity (singular or plural) association when
* a name is not explicitly configured.
*
* @param ownerEntityName The fully qualified name of the entity that owns the association;.
* @param ownerJpaEntityName The entity name provided by the {@link javax.persistence.Entity}
* {@code name} attribute for the entity that owns the association;
* or, if not mapped in this way, then the unqualified owner entity name.
* @param ownerEntityTable The owner entity's physical primary table name;
* @param associatedEntityName The fully qualified name of the associated entity.
* @param associatedJpaEntityName The entity name provided by the {@link javax.persistence.Entity}
* {@code name} attribute for the associated entity;
* or, if not mapped in this way, then the unqualified associated entity name.
* @param associatedEntityTable The associated entity's physical primary table name;
* @param propertyPath The property path (not qualified by the entity name),
* @return The implicit table name.
*/
public String determineImplicitEntityAssociationJoinTableName(
String ownerEntityName,
String ownerJpaEntityName,
String ownerEntityTable,
String associatedEntityName,
String associatedJpaEntityName,
String associatedEntityTable,
String propertyPath);
Determine the name of join column for an entity (singular or plural) association when
a name is not explicitly configured.
Params: - propertyEntityName – The fully qualified name of the entity that contains the association;
- propertyJpaEntityName – The entity name provided by the
Entity
name
attribute for the entity that contains the association; or, if not mapped in this way, then the unqualified entity name. - propertyTableName – The physical primary table name for the entity that contains the association.
- referencedColumnName – The physical name of the column that the join column references.
- propertyPath – The property path (not qualified by the entity name),
Returns: The implicit table name.
/**
* Determine the name of join column for an entity (singular or plural) association when
* a name is not explicitly configured.
*
* @param propertyEntityName The fully qualified name of the entity that contains the association;
* @param propertyJpaEntityName The entity name provided by the {@link javax.persistence.Entity}
* {@code name} attribute for the entity that contains the association;
* or, if not mapped in this way, then the unqualified entity name.
* @param propertyTableName The physical primary table name for the entity that contains the association.
* @param referencedColumnName The physical name of the column that the join column references.
* @param propertyPath The property path (not qualified by the entity name),
* @return The implicit table name.
*/
public String determineImplicitEntityAssociationJoinColumnName(
String propertyEntityName,
String propertyJpaEntityName,
String propertyTableName,
String referencedColumnName,
String propertyPath);
public String toPhysicalJoinKeyColumnName(String joinedColumn, String joinedTable);
public String determineLogicalColumnName(String columnName, String propertyName);
public String determineLogicalElementCollectionTableName(
String tableName,
String ownerEntityName,
String ownerJpaEntityName,
String ownerEntityTable,
String propertyName);
public String determineLogicalEntityAssociationJoinTableName(
String tableName,
String ownerEntityName,
String ownerJpaEntityName,
String ownerEntityTable,
String associatedEntityName,
String associatedJpaEntityName,
String associatedEntityTable,
String propertyName);
public String determineLogicalCollectionColumnName(String columnName, String propertyName, String referencedColumn);
Alter the table name given in the mapping document
Params: - tableName – a table name
Returns: a table name
/**
* Alter the table name given in the mapping document
* @param tableName a table name
* @return a table name
*/
public String toPhysicalTableName(String tableName);
Alter the column name given in the mapping document
Params: - columnName – a column name
Returns: a column name
/**
* Alter the column name given in the mapping document
* @param columnName a column name
* @return a column name
*/
public String toPhysicalColumnName(String columnName);
}