⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 improvednamingstrategy.java

📁 hibernate-distribution-3.3.1.GA-dist.zip源码
💻 JAVA
字号:
/* * Hibernate, Relational Persistence for Idiomatic Java * * Copyright (c) 2008, Red Hat Middleware LLC 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 Middleware LLC. * * 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;import java.io.Serializable;import org.hibernate.util.StringHelper;import org.hibernate.AssertionFailure;/** * An improved naming strategy that prefers embedded * underscores to mixed case names * @see DefaultNamingStrategy the default strategy * @author Gavin King */public class ImprovedNamingStrategy implements NamingStrategy, Serializable {	/**	 * A convenient singleton instance	 */	public static final NamingStrategy INSTANCE = new ImprovedNamingStrategy();	/**	 * Return the unqualified class name, mixed case converted to	 * underscores	 */	public String classToTableName(String className) {		return addUnderscores( StringHelper.unqualify(className) );	}	/**	 * Return the full property path with underscore seperators, mixed	 * case converted to underscores	 */	public String propertyToColumnName(String propertyName) {		return addUnderscores( StringHelper.unqualify(propertyName) );	}	/**	 * Convert mixed case to underscores	 */	public String tableName(String tableName) {		return addUnderscores(tableName);	}	/**	 * Convert mixed case to underscores	 */	public String columnName(String columnName) {		return addUnderscores(columnName);	}	protected static String addUnderscores(String name) {		StringBuffer buf = new StringBuffer( name.replace('.', '_') );		for (int i=1; i<buf.length()-1; i++) {			if (				Character.isLowerCase( buf.charAt(i-1) ) &&				Character.isUpperCase( buf.charAt(i) ) &&				Character.isLowerCase( buf.charAt(i+1) )			) {				buf.insert(i++, '_');			}		}		return buf.toString().toLowerCase();	}	public String collectionTableName(			String ownerEntity, String ownerEntityTable, String associatedEntity, String associatedEntityTable,			String propertyName	) {		return tableName( ownerEntityTable + '_' + propertyToColumnName(propertyName) );	}	/**	 * Return the argument	 */	public String joinKeyColumnName(String joinedColumn, String joinedTable) {		return columnName( joinedColumn );	}	/**	 * Return the property name or propertyTableName	 */	public String foreignKeyColumnName(			String propertyName, String propertyEntityName, String propertyTableName, String referencedColumnName	) {		String header = propertyName != null ? StringHelper.unqualify( propertyName ) : propertyTableName;		if (header == null) throw new AssertionFailure("NamingStrategy not properly filled");		return columnName( header ); //+ "_" + referencedColumnName not used for backward compatibility	}	/**	 * Return the column name or the unqualified property name	 */	public String logicalColumnName(String columnName, String propertyName) {		return StringHelper.isNotEmpty( columnName ) ? columnName : StringHelper.unqualify( propertyName );	}	/**	 * Returns either the table name if explicit or	 * if there is an associated table, the concatenation of owner entity table and associated table	 * otherwise the concatenation of owner entity table and the unqualified property name	 */	public String logicalCollectionTableName(String tableName,											 String ownerEntityTable, String associatedEntityTable, String propertyName	) {		if ( tableName != null ) {			return tableName;		}		else {			//use of a stringbuffer to workaround a JDK bug			return new StringBuffer(ownerEntityTable).append("_")					.append(						associatedEntityTable != null ?						associatedEntityTable :						StringHelper.unqualify( propertyName )					).toString();		}	}	/**	 * Return the column name if explicit or the concatenation of the property name and the referenced column	 */	public String logicalCollectionColumnName(String columnName, String propertyName, String referencedColumn) {		return StringHelper.isNotEmpty( columnName ) ?				columnName :				StringHelper.unqualify( propertyName ) + "_" + referencedColumn;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -