/* * Hibernate, Relational Persistence for Idiomatic Java * * Copyright (c) 2010, Red Hat Inc. 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.dialect; import java.sql.SQLException; import java.sql.Types; //import org.hibernate.exception.spi.TemplatedViolatedConstraintNameExtracter; //import org.hibernate.exception.spi.ViolatedConstraintNameExtracter; //import org.hibernate.internal.util.JdbcExceptionHelper; /** * An SQL dialect for MySQL 5.x specific features. * * @author Steve Ebersole */ public class MySQL5Dialect extends MySQLDialect { @Override protected void registerVarcharTypes() { registerColumnType( Types.VARCHAR, "longtext" ); // registerColumnType( Types.VARCHAR, 16777215, "mediumtext" ); registerColumnType( Types.VARCHAR, 65535, "varchar($l)" ); registerColumnType( Types.LONGVARCHAR, "longtext" ); } @Override public boolean supportsColumnCheck() { return false; } // // public ViolatedConstraintNameExtracter getViolatedConstraintNameExtracter() { // return EXTRACTER; // } // // private static final ViolatedConstraintNameExtracter EXTRACTER = new TemplatedViolatedConstraintNameExtracter() { // // public String extractConstraintName(SQLException sqle) { // try { // final int sqlState = Integer.valueOf( JdbcExceptionHelper.extractSqlState( sqle ) ).intValue(); // switch ( sqlState ) { // case 23000: // return extractUsingTemplate( " for key '", "'", sqle.getMessage() ); // default: // return null; // } // } // catch ( NumberFormatException nfe ) { // return null; // } // } // }; }