/*
* Copyright (c) 2017 OBiBa. All rights reserved.
*
* This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.obiba.magma.datasource.hibernate.cfg;
import org.hibernate.AssertionFailure;
import org.hibernate.cfg.ImprovedNamingStrategy;
import org.hibernate.internal.util.StringHelper;
public class MagmaNamingStrategy extends ImprovedNamingStrategy {
private static final long serialVersionUID = -7910076102639471779L;
/**
* Overridden to generate the column name: <tableName>_<columnName>
*/
@Override
public String foreignKeyColumnName(String propertyName, String propertyEntityName, String propertyTableName,
String referencedColumnName) {
String header = propertyName == null ? propertyTableName : StringHelper.unqualify(propertyName);
if(header == null) throw new AssertionFailure("NamingStrategy not properly filled");
return columnName(header) + "_" + referencedColumnName; // not used for backward compatibility
}
}