HHH-8191 Support Teradata 14.0
This commit is contained in:
parent
27e8aae279
commit
027840018b
|
@ -23,19 +23,6 @@
|
||||||
*/
|
*/
|
||||||
package org.hibernate.cfg;
|
package org.hibernate.cfg;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Properties;
|
|
||||||
import javax.persistence.AttributeConverter;
|
|
||||||
import javax.persistence.SharedCacheMode;
|
|
||||||
|
|
||||||
import org.hibernate.EmptyInterceptor;
|
import org.hibernate.EmptyInterceptor;
|
||||||
import org.hibernate.HibernateException;
|
import org.hibernate.HibernateException;
|
||||||
import org.hibernate.Interceptor;
|
import org.hibernate.Interceptor;
|
||||||
|
@ -77,6 +64,19 @@ import org.hibernate.type.SerializationException;
|
||||||
import org.hibernate.usertype.CompositeUserType;
|
import org.hibernate.usertype.CompositeUserType;
|
||||||
import org.hibernate.usertype.UserType;
|
import org.hibernate.usertype.UserType;
|
||||||
|
|
||||||
|
import javax.persistence.AttributeConverter;
|
||||||
|
import javax.persistence.SharedCacheMode;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents one approach for bootstrapping Hibernate. In fact, historically this was
|
* Represents one approach for bootstrapping Hibernate. In fact, historically this was
|
||||||
* <b>the</b> way to bootstrap Hibernate.
|
* <b>the</b> way to bootstrap Hibernate.
|
||||||
|
|
|
@ -23,23 +23,6 @@
|
||||||
*/
|
*/
|
||||||
package org.hibernate.dialect;
|
package org.hibernate.dialect;
|
||||||
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.sql.Blob;
|
|
||||||
import java.sql.CallableStatement;
|
|
||||||
import java.sql.Clob;
|
|
||||||
import java.sql.NClob;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.sql.Types;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Properties;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.hibernate.HibernateException;
|
import org.hibernate.HibernateException;
|
||||||
import org.hibernate.LockMode;
|
import org.hibernate.LockMode;
|
||||||
import org.hibernate.LockOptions;
|
import org.hibernate.LockOptions;
|
||||||
|
@ -69,7 +52,6 @@ import org.hibernate.dialect.unique.UniqueDelegate;
|
||||||
import org.hibernate.engine.jdbc.LobCreator;
|
import org.hibernate.engine.jdbc.LobCreator;
|
||||||
import org.hibernate.engine.jdbc.env.internal.DefaultSchemaNameResolver;
|
import org.hibernate.engine.jdbc.env.internal.DefaultSchemaNameResolver;
|
||||||
import org.hibernate.engine.jdbc.env.spi.SchemaNameResolver;
|
import org.hibernate.engine.jdbc.env.spi.SchemaNameResolver;
|
||||||
import org.hibernate.engine.spi.RowSelection;
|
|
||||||
import org.hibernate.engine.spi.SessionImplementor;
|
import org.hibernate.engine.spi.SessionImplementor;
|
||||||
import org.hibernate.exception.spi.ConversionContext;
|
import org.hibernate.exception.spi.ConversionContext;
|
||||||
import org.hibernate.exception.spi.SQLExceptionConversionDelegate;
|
import org.hibernate.exception.spi.SQLExceptionConversionDelegate;
|
||||||
|
@ -111,9 +93,25 @@ import org.hibernate.tool.schema.spi.Exporter;
|
||||||
import org.hibernate.type.StandardBasicTypes;
|
import org.hibernate.type.StandardBasicTypes;
|
||||||
import org.hibernate.type.descriptor.sql.ClobTypeDescriptor;
|
import org.hibernate.type.descriptor.sql.ClobTypeDescriptor;
|
||||||
import org.hibernate.type.descriptor.sql.SqlTypeDescriptor;
|
import org.hibernate.type.descriptor.sql.SqlTypeDescriptor;
|
||||||
|
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.sql.Blob;
|
||||||
|
import java.sql.CallableStatement;
|
||||||
|
import java.sql.Clob;
|
||||||
|
import java.sql.NClob;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Types;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a dialect of SQL implemented by a particular RDBMS. Subclasses implement Hibernate compatibility
|
* Represents a dialect of SQL implemented by a particular RDBMS. Subclasses implement Hibernate compatibility
|
||||||
* with different systems. Subclasses should provide a public default constructor that register a set of type
|
* with different systems. Subclasses should provide a public default constructor that register a set of type
|
||||||
|
|
|
@ -0,0 +1,231 @@
|
||||||
|
/*
|
||||||
|
* 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.CallableStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.Types;
|
||||||
|
|
||||||
|
import org.hibernate.HibernateException;
|
||||||
|
import org.hibernate.JDBCException;
|
||||||
|
|
||||||
|
import org.hibernate.cfg.Environment;
|
||||||
|
import org.hibernate.dialect.function.SQLFunctionTemplate;
|
||||||
|
import org.hibernate.dialect.function.VarArgsSQLFunction;
|
||||||
|
import org.hibernate.exception.spi.TemplatedViolatedConstraintNameExtracter;
|
||||||
|
import org.hibernate.exception.spi.ViolatedConstraintNameExtracter;
|
||||||
|
import org.hibernate.type.StandardBasicTypes;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import org.hibernate.LockOptions;
|
||||||
|
import java.util.Map;
|
||||||
|
import org.hibernate.sql.ForUpdateFragment;
|
||||||
|
/**
|
||||||
|
* A dialect for the Teradata database
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class Teradata14Dialect extends TeradataDialect {
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
public Teradata13Dialect() {
|
||||||
|
super();
|
||||||
|
//registerColumnType data types
|
||||||
|
registerColumnType( Types.BIGINT, "BIGINT" );
|
||||||
|
registerColumnType( Types.BINARY, "VARBYTE(100)" );
|
||||||
|
registerColumnType( Types.LONGVARBINARY, "VARBYTE(32000)" );
|
||||||
|
registerColumnType( Types.LONGVARCHAR, "VARCHAR(32000)" );
|
||||||
|
|
||||||
|
getDefaultProperties().setProperty( Environment.USE_STREAMS_FOR_BINARY, "true" );
|
||||||
|
getDefaultProperties().setProperty( Environment.STATEMENT_BATCH_SIZE,DEFAULT_BATCH_SIZE );
|
||||||
|
|
||||||
|
registerFunction( "current_time", new SQLFunctionTemplate( StandardBasicTypes.TIME, "current_time" ) );
|
||||||
|
registerFunction( "current_date", new SQLFunctionTemplate( StandardBasicTypes.DATE, "current_date" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsIdentityColumns() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getAddColumnString() {
|
||||||
|
return "Add";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the name of the database type associated with the given
|
||||||
|
* <tt>java.sql.Types</tt> typecode.
|
||||||
|
*
|
||||||
|
* @param code <tt>java.sql.Types</tt> typecode
|
||||||
|
* @param length the length or precision of the column
|
||||||
|
* @param precision the precision of the column
|
||||||
|
* @param scale the scale of the column
|
||||||
|
*
|
||||||
|
* @return the database type name
|
||||||
|
*
|
||||||
|
* @throws HibernateException
|
||||||
|
*/
|
||||||
|
public String getTypeName(int code, int length, int precision, int scale) throws HibernateException {
|
||||||
|
/*
|
||||||
|
* We might want a special case for 19,2. This is very common for money types
|
||||||
|
* and here it is converted to 18,1
|
||||||
|
*/
|
||||||
|
float f = precision > 0 ? ( float ) scale / ( float ) precision : 0;
|
||||||
|
int p = ( precision > 38 ? 38 : precision );
|
||||||
|
int s = ( precision > 38 ? ( int ) ( 38.0 * f ) : ( scale > 38 ? 38 : scale ) );
|
||||||
|
return super.getTypeName( code, length, p, s );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean areStringComparisonsCaseInsensitive() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getIdentityColumnString() {
|
||||||
|
return "generated by default as identity not null";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getIdentityInsertString() {
|
||||||
|
return "null";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDropTemporaryTableString() {
|
||||||
|
return "drop temporary table";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsExpectedLobUsagePattern() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ViolatedConstraintNameExtracter getViolatedConstraintNameExtracter() {
|
||||||
|
return EXTRACTER;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsTupleDistinctCounts() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsExistsInSelect() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsUnboundedLobLocatorMaterialization() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int registerResultSetOutParameter(CallableStatement statement, int col) throws SQLException {
|
||||||
|
statement.registerOutParameter(col, Types.REF);
|
||||||
|
col++;
|
||||||
|
return col;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResultSet getResultSet(CallableStatement cs) throws SQLException {
|
||||||
|
boolean isResultSet = cs.execute();
|
||||||
|
while (!isResultSet && cs.getUpdateCount() != -1) {
|
||||||
|
isResultSet = cs.getMoreResults();
|
||||||
|
}
|
||||||
|
return cs.getResultSet();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ViolatedConstraintNameExtracter EXTRACTER = new TemplatedViolatedConstraintNameExtracter() {
|
||||||
|
/**
|
||||||
|
* Extract the name of the violated constraint from the given SQLException.
|
||||||
|
*
|
||||||
|
* @param sqle The exception that was the result of the constraint violation.
|
||||||
|
* @return The extracted constraint name.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String extractConstraintName(SQLException sqle) {
|
||||||
|
String constraintName = null;
|
||||||
|
|
||||||
|
int errorCode = sqle.getErrorCode();
|
||||||
|
if (errorCode == 27003) {
|
||||||
|
constraintName = extractUsingTemplate("Unique constraint (", ") violated.", sqle.getMessage());
|
||||||
|
} else if (errorCode == 2700) {
|
||||||
|
constraintName = extractUsingTemplate("Referential constraint", "violation:", sqle.getMessage());
|
||||||
|
} else if (errorCode == 5317) {
|
||||||
|
constraintName = extractUsingTemplate("Check constraint (", ") violated.", sqle.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (constraintName != null) {
|
||||||
|
int i = constraintName.indexOf('.');
|
||||||
|
if (i != -1) {
|
||||||
|
constraintName = constraintName.substring(i + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return constraintName;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getWriteLockString(int timeout) {
|
||||||
|
String sMsg = " Locking row for write ";
|
||||||
|
if ( timeout == LockOptions.NO_WAIT ) {
|
||||||
|
return sMsg + " nowait ";
|
||||||
|
}
|
||||||
|
return sMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getReadLockString(int timeout) {
|
||||||
|
String sMsg = " Locking row for read ";
|
||||||
|
if ( timeout == LockOptions.NO_WAIT ) {
|
||||||
|
return sMsg + " nowait ";
|
||||||
|
}
|
||||||
|
return sMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String applyLocksToSql(String sql, LockOptions aliasedLockOptions, Map keyColumnNames) {
|
||||||
|
return new ForUpdateFragment( this, aliasedLockOptions, keyColumnNames ).toFragmentString() + " " + sql;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean useFollowOnLocking() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isLockAppended() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsLockTimeouts() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@ import org.hibernate.type.StandardBasicTypes;
|
||||||
* @author Jay Nance
|
* @author Jay Nance
|
||||||
*/
|
*/
|
||||||
public class TeradataDialect extends Dialect {
|
public class TeradataDialect extends Dialect {
|
||||||
|
|
||||||
private static final int PARAM_LIST_SIZE_LIMIT = 1024;
|
private static final int PARAM_LIST_SIZE_LIMIT = 1024;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,8 +63,7 @@ public class TeradataDialect extends Dialect {
|
||||||
registerColumnType( Types.DATE, "DATE" );
|
registerColumnType( Types.DATE, "DATE" );
|
||||||
registerColumnType( Types.TIME, "TIME" );
|
registerColumnType( Types.TIME, "TIME" );
|
||||||
registerColumnType( Types.TIMESTAMP, "TIMESTAMP" );
|
registerColumnType( Types.TIMESTAMP, "TIMESTAMP" );
|
||||||
// hibernate seems to ignore this type...
|
registerColumnType( Types.BOOLEAN, "BYTEINT" ); // hibernate seems to ignore this type...
|
||||||
registerColumnType( Types.BOOLEAN, "BYTEINT" );
|
|
||||||
registerColumnType( Types.BLOB, "BLOB" );
|
registerColumnType( Types.BLOB, "BLOB" );
|
||||||
registerColumnType( Types.CLOB, "CLOB" );
|
registerColumnType( Types.CLOB, "CLOB" );
|
||||||
|
|
||||||
|
@ -113,87 +113,87 @@ public class TeradataDialect extends Dialect {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Teradata does not support <tt>FOR UPDATE</tt> syntax
|
* Does this dialect support the <tt>FOR UPDATE</tt> syntax?
|
||||||
* <p/>
|
*
|
||||||
* {@inheritDoc}
|
* @return empty string ... Teradata does not support <tt>FOR UPDATE<tt> syntax
|
||||||
*/
|
*/
|
||||||
@Override
|
|
||||||
public String getForUpdateString() {
|
public String getForUpdateString() {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean supportsIdentityColumns() {
|
public boolean supportsIdentityColumns() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean supportsSequences() {
|
public boolean supportsSequences() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getAddColumnString() {
|
public String getAddColumnString() {
|
||||||
return "Add Column";
|
return "Add Column";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean supportsTemporaryTables() {
|
public boolean supportsTemporaryTables() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getCreateTemporaryTableString() {
|
public String getCreateTemporaryTableString() {
|
||||||
return "create global temporary table";
|
return "create global temporary table";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getCreateTemporaryTablePostfix() {
|
public String getCreateTemporaryTablePostfix() {
|
||||||
return " on commit preserve rows";
|
return " on commit preserve rows";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Boolean performTemporaryTableDDLInIsolation() {
|
public Boolean performTemporaryTableDDLInIsolation() {
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean dropTemporaryTableAfterUse() {
|
public boolean dropTemporaryTableAfterUse() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
/**
|
||||||
public String getTypeName(int code, long length, int precision, int scale) throws HibernateException {
|
* Get the name of the database type associated with the given
|
||||||
// We might want a special case for 19,2. This is very common for money types
|
* <tt>java.sql.Types</tt> typecode.
|
||||||
// and here it is converted to 18,1
|
*
|
||||||
final float f = precision > 0 ? (float) scale / (float) precision : 0;
|
* @param code <tt>java.sql.Types</tt> typecode
|
||||||
final int p = ( precision > 18 ? 18 : precision );
|
* @param length the length or precision of the column
|
||||||
final int s = ( precision > 18 ? (int) ( 18.0 * f ) : ( scale > 18 ? 18 : scale ) );
|
* @param precision the precision of the column
|
||||||
|
* @param scale the scale of the column
|
||||||
|
*
|
||||||
|
* @return the database type name
|
||||||
|
*
|
||||||
|
* @throws HibernateException
|
||||||
|
*/
|
||||||
|
public String getTypeName(int code, int length, int precision, int scale) throws HibernateException {
|
||||||
|
/*
|
||||||
|
* We might want a special case for 19,2. This is very common for money types
|
||||||
|
* and here it is converted to 18,1
|
||||||
|
*/
|
||||||
|
float f = precision > 0 ? ( float ) scale / ( float ) precision : 0;
|
||||||
|
int p = ( precision > 18 ? 18 : precision );
|
||||||
|
int s = ( precision > 18 ? ( int ) ( 18.0 * f ) : ( scale > 18 ? 18 : scale ) );
|
||||||
|
|
||||||
return super.getTypeName( code, length, p, s );
|
return super.getTypeName( code, length, p, s );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean supportsCascadeDelete() {
|
public boolean supportsCascadeDelete() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean supportsCircularCascadeDeleteConstraints() {
|
public boolean supportsCircularCascadeDeleteConstraints() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean areStringComparisonsCaseInsensitive() {
|
public boolean areStringComparisonsCaseInsensitive() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean supportsEmptyInList() {
|
public boolean supportsEmptyInList() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSelectClauseNullString(int sqlType) {
|
public String getSelectClauseNullString(int sqlType) {
|
||||||
String v = "null";
|
String v = "null";
|
||||||
|
|
||||||
|
@ -235,37 +235,33 @@ public class TeradataDialect extends Dialect {
|
||||||
case Types.DATALINK:
|
case Types.DATALINK:
|
||||||
case Types.BOOLEAN:
|
case Types.BOOLEAN:
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getCreateMultisetTableString() {
|
public String getCreateMultisetTableString() {
|
||||||
return "create multiset table ";
|
return "create multiset table ";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean supportsLobValueChangePropogation() {
|
public boolean supportsLobValueChangePropogation() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean doesReadCommittedCauseWritersToBlockReaders() {
|
public boolean doesReadCommittedCauseWritersToBlockReaders() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean doesRepeatableReadCauseReadersToBlockWriters() {
|
public boolean doesRepeatableReadCauseReadersToBlockWriters() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean supportsBindAsCallableArgument() {
|
public boolean supportsBindAsCallableArgument() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.hibernate.dialect.Dialect#getInExpressionCountLimit()
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int getInExpressionCountLimit() {
|
public int getInExpressionCountLimit() {
|
||||||
return PARAM_LIST_SIZE_LIMIT;
|
return PARAM_LIST_SIZE_LIMIT;
|
||||||
|
|
|
@ -92,7 +92,10 @@ public class Select {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lockOptions.getLockMode()!=LockMode.NONE) {
|
if (lockOptions.getLockMode()!=LockMode.NONE) {
|
||||||
|
if (dialect.isLockAppended())
|
||||||
buf.append( dialect.getForUpdateString(lockOptions) );
|
buf.append( dialect.getForUpdateString(lockOptions) );
|
||||||
|
else
|
||||||
|
buf.insert(0,dialect.getForUpdateString(lockOptions));
|
||||||
}
|
}
|
||||||
|
|
||||||
return dialect.transformSelectString( buf.toString() );
|
return dialect.transformSelectString( buf.toString() );
|
||||||
|
|
|
@ -187,7 +187,10 @@ public class SimpleSelect {
|
||||||
if (orderBy!=null) buf.append(orderBy);
|
if (orderBy!=null) buf.append(orderBy);
|
||||||
|
|
||||||
if (lockOptions!=null) {
|
if (lockOptions!=null) {
|
||||||
|
if (dialect.isLockAppended())
|
||||||
buf.append( dialect.getForUpdateString(lockOptions) );
|
buf.append( dialect.getForUpdateString(lockOptions) );
|
||||||
|
else
|
||||||
|
buf.insert(0,dialect.getForUpdateString(lockOptions));
|
||||||
}
|
}
|
||||||
|
|
||||||
return dialect.transformSelectString( buf.toString() );
|
return dialect.transformSelectString( buf.toString() );
|
||||||
|
|
|
@ -13,16 +13,16 @@ import javax.persistence.UniqueConstraint;
|
||||||
*/
|
*/
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "tbl_sky",
|
@Table(name = "tbl_sky",
|
||||||
uniqueConstraints = {@UniqueConstraint(columnNames = {"month", "day"})}
|
uniqueConstraints = {@UniqueConstraint(columnNames = {"`month`", "`day`"})}
|
||||||
)
|
)
|
||||||
public class Sky implements Serializable {
|
public class Sky implements Serializable {
|
||||||
@Id
|
@Id
|
||||||
protected Long id;
|
protected Long id;
|
||||||
@Column(unique = true, columnDefinition = "varchar(250)", nullable = false)
|
@Column(unique = true, columnDefinition = "varchar(250)", nullable = false)
|
||||||
protected String color;
|
protected String color;
|
||||||
@Column(nullable = false)
|
@Column(name="`day`",nullable = false)
|
||||||
protected String day;
|
protected String day;
|
||||||
@Column(name = "MONTH", nullable = false)
|
@Column(name = "`MONTH`", nullable = false)
|
||||||
protected String month;
|
protected String month;
|
||||||
@Transient
|
@Transient
|
||||||
protected String area;
|
protected String area;
|
||||||
|
|
|
@ -12,7 +12,6 @@ public class CharProperty implements Property {
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
@Column(name = "`value`")
|
|
||||||
private Character value;
|
private Character value;
|
||||||
|
|
||||||
public CharProperty() {
|
public CharProperty() {
|
||||||
|
@ -43,6 +42,7 @@ public class CharProperty implements Property {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Column(name = "`value`")
|
||||||
public Character getValue() {
|
public Character getValue() {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@ import javax.persistence.Column;
|
||||||
public class IntegerProperty implements Property {
|
public class IntegerProperty implements Property {
|
||||||
private Integer id;
|
private Integer id;
|
||||||
private String name;
|
private String name;
|
||||||
@Column(name = "`value`")
|
|
||||||
private Integer value;
|
private Integer value;
|
||||||
|
|
||||||
public IntegerProperty() {
|
public IntegerProperty() {
|
||||||
|
@ -41,6 +40,7 @@ public class IntegerProperty implements Property {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Column(name = "`value`")
|
||||||
public Integer getValue() {
|
public Integer getValue() {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,6 @@ public class LongProperty implements Property {
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
@Column(name = "`value`")
|
|
||||||
private Long value;
|
private Long value;
|
||||||
|
|
||||||
public LongProperty() {
|
public LongProperty() {
|
||||||
|
@ -42,6 +41,7 @@ public class LongProperty implements Property {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Column(name = "`value`")
|
||||||
public Long getValue() {
|
public Long getValue() {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@ import javax.persistence.Column;
|
||||||
public class StringProperty implements Property {
|
public class StringProperty implements Property {
|
||||||
private Integer id;
|
private Integer id;
|
||||||
private String name;
|
private String name;
|
||||||
@Column(name = "`value`")
|
|
||||||
private String value;
|
private String value;
|
||||||
|
|
||||||
public StringProperty() {
|
public StringProperty() {
|
||||||
|
@ -41,6 +40,7 @@ public class StringProperty implements Property {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Column(name = "`value`")
|
||||||
public String getValue() {
|
public String getValue() {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
package org.hibernate.test.annotations.collectionelement;
|
package org.hibernate.test.annotations.collectionelement;
|
||||||
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Embeddable;
|
import javax.persistence.Embeddable;
|
||||||
|
|
||||||
@Embeddable
|
@Embeddable
|
||||||
|
@ -8,6 +9,7 @@ public class Bug {
|
||||||
private Person reportedBy;
|
private Person reportedBy;
|
||||||
private String summary;
|
private String summary;
|
||||||
|
|
||||||
|
@Column(name="`summary`")
|
||||||
public String getSummary() {
|
public String getSummary() {
|
||||||
return summary;
|
return summary;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,8 @@ import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
import junit.framework.Assert;
|
import junit.framework.Assert;
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
|
import org.hibernate.testing.SkipForDialect;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
|
@ -74,6 +76,11 @@ public class OrderByTest extends BaseCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@SkipForDialect(
|
||||||
|
value = TeradataDialect.class,
|
||||||
|
jiraKey = "HHH-8190",
|
||||||
|
comment = "uses Teradata reserved word - summary"
|
||||||
|
)
|
||||||
public void testOrderByWithDottedNotation() throws Exception {
|
public void testOrderByWithDottedNotation() throws Exception {
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
Transaction tx = s.beginTransaction();
|
Transaction tx = s.beginTransaction();
|
||||||
|
|
|
@ -11,7 +11,6 @@ import javax.persistence.Column;
|
||||||
@Entity
|
@Entity
|
||||||
public class CorpType {
|
public class CorpType {
|
||||||
private Integer id;
|
private Integer id;
|
||||||
@Column(name = "`type`")
|
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
|
@ -24,6 +23,7 @@ public class CorpType {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Column(name = "`type`")
|
||||||
public String getType() {
|
public String getType() {
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,8 @@ import java.util.Date;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
|
import org.hibernate.testing.SkipForDialect;
|
||||||
|
|
||||||
import org.hibernate.AnnotationException;
|
import org.hibernate.AnnotationException;
|
||||||
import org.hibernate.Hibernate;
|
import org.hibernate.Hibernate;
|
||||||
|
@ -99,6 +101,7 @@ public class BasicHibernateAnnotationsTest extends BaseCoreFunctionalTestCase {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@RequiresDialectFeature( DialectChecks.SupportsExpectedLobUsagePattern.class )
|
@RequiresDialectFeature( DialectChecks.SupportsExpectedLobUsagePattern.class )
|
||||||
|
@SkipForDialect(value = TeradataDialect.class , comment = "One transaction hangs the other")
|
||||||
public void testVersioning() throws Exception {
|
public void testVersioning() throws Exception {
|
||||||
Forest forest = new Forest();
|
Forest forest = new Forest();
|
||||||
forest.setName( "Fontainebleau" );
|
forest.setName( "Fontainebleau" );
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package org.hibernate.test.annotations.idmanytoone;
|
package org.hibernate.test.annotations.idmanytoone;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.FetchType;
|
import javax.persistence.FetchType;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
|
@ -26,6 +27,7 @@ public class CourseStudent implements Serializable {
|
||||||
@JoinColumn(name = "student_id")
|
@JoinColumn(name = "student_id")
|
||||||
private Student student;
|
private Student student;
|
||||||
|
|
||||||
|
@Column(name = "`value`")
|
||||||
private String value;
|
private String value;
|
||||||
|
|
||||||
public CourseStudent() {
|
public CourseStudent() {
|
||||||
|
|
|
@ -12,7 +12,7 @@ import javax.persistence.Table;
|
||||||
* @author Emmanuel Bernard
|
* @author Emmanuel Bernard
|
||||||
*/
|
*/
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "ABs")
|
@Table(name = "`ABs`")
|
||||||
@IdClass( StoreCustomerPK.class)
|
@IdClass( StoreCustomerPK.class)
|
||||||
public class StoreCustomer implements Serializable {
|
public class StoreCustomer implements Serializable {
|
||||||
StoreCustomer() {}
|
StoreCustomer() {}
|
||||||
|
|
|
@ -23,6 +23,19 @@
|
||||||
*/
|
*/
|
||||||
package org.hibernate.test.annotations.indexcoll;
|
package org.hibernate.test.annotations.indexcoll;
|
||||||
|
|
||||||
|
import org.hibernate.Hibernate;
|
||||||
|
import org.hibernate.Session;
|
||||||
|
import org.hibernate.Transaction;
|
||||||
|
import org.hibernate.dialect.H2Dialect;
|
||||||
|
import org.hibernate.dialect.HSQLDialect;
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
|
import org.hibernate.mapping.Collection;
|
||||||
|
import org.hibernate.mapping.Column;
|
||||||
|
import org.hibernate.testing.RequiresDialect;
|
||||||
|
import org.hibernate.testing.SkipForDialect;
|
||||||
|
import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -30,18 +43,6 @@ import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
import org.hibernate.Session;
|
|
||||||
import org.hibernate.Transaction;
|
|
||||||
import org.hibernate.dialect.H2Dialect;
|
|
||||||
import org.hibernate.dialect.HSQLDialect;
|
|
||||||
import org.hibernate.mapping.Collection;
|
|
||||||
import org.hibernate.mapping.Column;
|
|
||||||
|
|
||||||
import org.hibernate.testing.RequiresDialect;
|
|
||||||
import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase;
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
@ -375,6 +376,11 @@ public class IndexedCollectionTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@SkipForDialect(
|
||||||
|
value = TeradataDialect.class,
|
||||||
|
jiraKey = "HHH-8190",
|
||||||
|
comment = "uses Teradata reserved word - title"
|
||||||
|
)
|
||||||
public void testMapKeyOnManyToMany() throws Exception {
|
public void testMapKeyOnManyToMany() throws Exception {
|
||||||
Session s;
|
Session s;
|
||||||
s = openSession();
|
s = openSession();
|
||||||
|
@ -404,6 +410,11 @@ public class IndexedCollectionTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@SkipForDialect(
|
||||||
|
value = TeradataDialect.class,
|
||||||
|
jiraKey = "HHH-8190",
|
||||||
|
comment = "uses Teradata reserved word - title"
|
||||||
|
)
|
||||||
public void testMapKeyOnManyToManyOnId() throws Exception {
|
public void testMapKeyOnManyToManyOnId() throws Exception {
|
||||||
Session s;
|
Session s;
|
||||||
s = openSession();
|
s = openSession();
|
||||||
|
|
|
@ -37,7 +37,7 @@ import javax.persistence.OneToMany;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "ACCOUNT")
|
@Table(name = "`ACCOUNT`")
|
||||||
public class Account implements Serializable {
|
public class Account implements Serializable {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ import org.hibernate.dialect.DB2Dialect;
|
||||||
import org.hibernate.dialect.HSQLDialect;
|
import org.hibernate.dialect.HSQLDialect;
|
||||||
import org.hibernate.dialect.Oracle8iDialect;
|
import org.hibernate.dialect.Oracle8iDialect;
|
||||||
import org.hibernate.dialect.SQLServer2005Dialect;
|
import org.hibernate.dialect.SQLServer2005Dialect;
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
import org.hibernate.testing.RequiresDialect;
|
import org.hibernate.testing.RequiresDialect;
|
||||||
import org.hibernate.testing.SkipForDialect;
|
import org.hibernate.testing.SkipForDialect;
|
||||||
import org.hibernate.testing.SkipForDialects;
|
import org.hibernate.testing.SkipForDialects;
|
||||||
|
@ -159,7 +160,9 @@ public class ManyToOneWithFormulaTest extends BaseCoreFunctionalTestCase {
|
||||||
@SkipForDialect( value = { HSQLDialect.class }, comment = "The used join conditions does not work in HSQLDB. See HHH-4497." ),
|
@SkipForDialect( value = { HSQLDialect.class }, comment = "The used join conditions does not work in HSQLDB. See HHH-4497." ),
|
||||||
@SkipForDialect( value = { SQLServer2005Dialect.class } ),
|
@SkipForDialect( value = { SQLServer2005Dialect.class } ),
|
||||||
@SkipForDialect( value = { Oracle8iDialect.class }, comment = "Oracle/DB2 do not support 'substring' function" ),
|
@SkipForDialect( value = { Oracle8iDialect.class }, comment = "Oracle/DB2 do not support 'substring' function" ),
|
||||||
@SkipForDialect( value = { DB2Dialect.class }, comment = "Oracle/DB2 do not support 'substring' function" ) } )
|
@SkipForDialect( value = { DB2Dialect.class }, comment = "Oracle/DB2 do not support 'substring' function" ),
|
||||||
|
@SkipForDialect( value = {TeradataDialect.class }, comment = "Teradata doesn't support substring(?,?,?). \"substr\" would work." ),
|
||||||
|
} )
|
||||||
public void testManyToOneFromNonPkToNonPk() throws Exception {
|
public void testManyToOneFromNonPkToNonPk() throws Exception {
|
||||||
// also tests usage of the stand-alone @JoinFormula annotation (i.e. not wrapped within @JoinColumnsOrFormulas)
|
// also tests usage of the stand-alone @JoinFormula annotation (i.e. not wrapped within @JoinColumnsOrFormulas)
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
|
|
|
@ -33,7 +33,7 @@ import javax.persistence.Table;
|
||||||
* @author Saša Obradović
|
* @author Saša Obradović
|
||||||
*/
|
*/
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "ACCOUNT")
|
@Table(name = "`ACCOUNT`")
|
||||||
@Inheritance(strategy = InheritanceType.JOINED)
|
@Inheritance(strategy = InheritanceType.JOINED)
|
||||||
public class Account extends AccountBase {
|
public class Account extends AccountBase {
|
||||||
public Account() {
|
public Account() {
|
||||||
|
|
|
@ -61,7 +61,7 @@ public class Area {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Column(unique = true)
|
@Column(unique = true, nullable=false)
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ import javax.persistence.SqlResultSetMapping;
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@NamedNativeQuery(name = "all.dictionaries",
|
@NamedNativeQuery(name = "all.dictionaries",
|
||||||
query = "select id, name, editor, disc as type from Dictionary",
|
query = "select id, name, editor, disc as \"type\" from Dictionary",
|
||||||
resultSetMapping = "dictionary")
|
resultSetMapping = "dictionary")
|
||||||
public class Dictionary {
|
public class Dictionary {
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
|
@ -243,6 +243,7 @@ public class QueryAndSQLTest extends BaseCoreFunctionalTestCase {
|
||||||
tx = s.beginTransaction();
|
tx = s.beginTransaction();
|
||||||
Statistics stats = sessionFactory().getStatistics();
|
Statistics stats = sessionFactory().getStatistics();
|
||||||
stats.setStatisticsEnabled( true );
|
stats.setStatisticsEnabled( true );
|
||||||
|
stats.clear();
|
||||||
Query q = s.getNamedQuery( "night&areaCached" );
|
Query q = s.getNamedQuery( "night&areaCached" );
|
||||||
q.setCacheable( true );
|
q.setCacheable( true );
|
||||||
List result = q.list();
|
List result = q.list();
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
//$Id$
|
//$Id$
|
||||||
package org.hibernate.test.annotations.referencedcolumnname;
|
package org.hibernate.test.annotations.referencedcolumnname;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Column;
|
||||||
import javax.persistence.GeneratedValue;
|
import javax.persistence.GeneratedValue;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
|
|
||||||
|
@ -10,6 +11,7 @@ import javax.persistence.Id;
|
||||||
@Entity
|
@Entity
|
||||||
public class Clothes {
|
public class Clothes {
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
@Column(name = "type")
|
||||||
private String type;
|
private String type;
|
||||||
private String flavor;
|
private String flavor;
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import java.io.Serializable;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import javax.persistence.CascadeType;
|
import javax.persistence.CascadeType;
|
||||||
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.GeneratedValue;
|
import javax.persistence.GeneratedValue;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
|
@ -18,6 +19,7 @@ import javax.persistence.OneToMany;
|
||||||
public class Luggage implements Serializable {
|
public class Luggage implements Serializable {
|
||||||
private Integer id;
|
private Integer id;
|
||||||
private String owner;
|
private String owner;
|
||||||
|
@Column(name = "`type`")
|
||||||
private String type;
|
private String type;
|
||||||
private Set<Clothes> hasInside = new HashSet<Clothes>();
|
private Set<Clothes> hasInside = new HashSet<Clothes>();
|
||||||
|
|
||||||
|
|
|
@ -23,18 +23,19 @@
|
||||||
*/
|
*/
|
||||||
package org.hibernate.test.annotations.referencedcolumnname;
|
package org.hibernate.test.annotations.referencedcolumnname;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
import org.hibernate.Transaction;
|
import org.hibernate.Transaction;
|
||||||
import org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl;
|
import org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl;
|
||||||
import org.hibernate.cfg.Configuration;
|
import org.hibernate.cfg.Configuration;
|
||||||
import org.hibernate.criterion.Restrictions;
|
import org.hibernate.criterion.Restrictions;
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
|
import org.hibernate.testing.SkipForDialect;
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
|
@ -102,6 +103,11 @@ public class ReferencedColumnNameTest extends BaseCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@SkipForDialect(
|
||||||
|
value = TeradataDialect.class,
|
||||||
|
jiraKey = "HHH-8190",
|
||||||
|
comment = "uses Teradata reserved word - type"
|
||||||
|
)
|
||||||
public void testUnidirectionalOneToMany() throws Exception {
|
public void testUnidirectionalOneToMany() throws Exception {
|
||||||
Session s;
|
Session s;
|
||||||
Transaction tx;
|
Transaction tx;
|
||||||
|
|
|
@ -37,6 +37,7 @@ public class Dvd {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Column(name="`title`")
|
||||||
public String getTitle() {
|
public String getTitle() {
|
||||||
return title;
|
return title;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ public class Building {
|
||||||
this.height = height;
|
this.height = height;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne(optional = false)
|
||||||
public Room getRoom() {
|
public Room getRoom() {
|
||||||
return room;
|
return room;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
package org.hibernate.test.annotations.uniqueconstraint;
|
package org.hibernate.test.annotations.uniqueconstraint;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
import javax.persistence.UniqueConstraint;
|
import javax.persistence.UniqueConstraint;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Manuel Bernhardt <bernhardt.manuel@gmail.com>
|
* @author Manuel Bernhardt <bernhardt.manuel@gmail.com>
|
||||||
|
@ -11,9 +13,9 @@ import javax.persistence.UniqueConstraint;
|
||||||
@Entity
|
@Entity
|
||||||
@Table(uniqueConstraints = {@UniqueConstraint(name = "uniqueWithInherited", columnNames = {"room_id", "cost"} )})
|
@Table(uniqueConstraints = {@UniqueConstraint(name = "uniqueWithInherited", columnNames = {"room_id", "cost"} )})
|
||||||
public class House extends Building {
|
public class House extends Building {
|
||||||
|
@Column(nullable = false)
|
||||||
public Long id;
|
public Long id;
|
||||||
|
@NotNull
|
||||||
public Integer cost;
|
public Integer cost;
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.hibernate.test.annotations.uniqueconstraint;
|
package org.hibernate.test.annotations.uniqueconstraint;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
|
|
||||||
|
@ -8,7 +9,6 @@ import javax.persistence.Id;
|
||||||
*/
|
*/
|
||||||
@Entity
|
@Entity
|
||||||
public class Room {
|
public class Room {
|
||||||
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
@ -22,6 +22,7 @@ public class Room {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
|
@Column(nullable = false)
|
||||||
public Long getId() {
|
public Long getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@ package org.hibernate.test.annotations.uniqueconstraint;
|
||||||
import org.hibernate.JDBCException;
|
import org.hibernate.JDBCException;
|
||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
import org.hibernate.Transaction;
|
import org.hibernate.Transaction;
|
||||||
|
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ public class Vehicule {
|
||||||
@Index(name = "thirdone")
|
@Index(name = "thirdone")
|
||||||
private Conductor currentConductor;
|
private Conductor currentConductor;
|
||||||
@Index(name = "year_idx")
|
@Index(name = "year_idx")
|
||||||
|
@Column(name = "`year`")
|
||||||
private Integer year;
|
private Integer year;
|
||||||
@ManyToOne(optional = true)
|
@ManyToOne(optional = true)
|
||||||
@Index(name = "forthone")
|
@Index(name = "forthone")
|
||||||
|
|
|
@ -22,12 +22,14 @@
|
||||||
* Boston, MA 02110-1301 USA
|
* Boston, MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.hibernate.test.annotations.xml.ejb3;
|
package org.hibernate.test.annotations.xml.ejb3;
|
||||||
|
import javax.persistence.Column;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Emmanuel Bernard
|
* @author Emmanuel Bernard
|
||||||
*/
|
*/
|
||||||
public class CarModel extends Model {
|
public class CarModel extends Model {
|
||||||
|
@Column(name="`year`")
|
||||||
private Date year;
|
private Date year;
|
||||||
|
|
||||||
public Date getYear() {
|
public Date getYear() {
|
||||||
|
|
|
@ -33,8 +33,10 @@ import org.hibernate.SessionFactory;
|
||||||
import org.hibernate.Transaction;
|
import org.hibernate.Transaction;
|
||||||
import org.hibernate.dialect.PostgreSQL81Dialect;
|
import org.hibernate.dialect.PostgreSQL81Dialect;
|
||||||
import org.hibernate.dialect.PostgreSQLDialect;
|
import org.hibernate.dialect.PostgreSQLDialect;
|
||||||
|
import org.hibernate.dialect.TeradataDialect;;
|
||||||
import org.hibernate.persister.collection.BasicCollectionPersister;
|
import org.hibernate.persister.collection.BasicCollectionPersister;
|
||||||
import org.hibernate.testing.SkipForDialect;
|
import org.hibernate.testing.SkipForDialect;
|
||||||
|
import org.hibernate.testing.SkipForDialects;
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
@ -45,8 +47,13 @@ import static org.junit.Assert.assertNotNull;
|
||||||
*/
|
*/
|
||||||
public class Ejb3XmlTest extends BaseCoreFunctionalTestCase {
|
public class Ejb3XmlTest extends BaseCoreFunctionalTestCase {
|
||||||
@Test
|
@Test
|
||||||
|
@SkipForDialects ( {
|
||||||
@SkipForDialect(value = { PostgreSQL81Dialect.class, PostgreSQLDialect.class },
|
@SkipForDialect(value = { PostgreSQL81Dialect.class, PostgreSQLDialect.class },
|
||||||
comment = "postgresql jdbc driver does not implement the setQueryTimeout method")
|
comment = "postgresql jdbc driver does not implement the setQueryTimeout method"),
|
||||||
|
@SkipForDialect(value = TeradataDialect.class ,
|
||||||
|
jiraKey = "HHH-8190",
|
||||||
|
comment = "uses Teradata reserved word - year")
|
||||||
|
} )
|
||||||
public void testEjb3Xml() throws Exception {
|
public void testEjb3Xml() throws Exception {
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
Transaction tx = s.beginTransaction();
|
Transaction tx = s.beginTransaction();
|
||||||
|
|
|
@ -24,12 +24,14 @@
|
||||||
package org.hibernate.test.event.collection.detached;
|
package org.hibernate.test.event.collection.detached;
|
||||||
|
|
||||||
import javax.persistence.CascadeType;
|
import javax.persistence.CascadeType;
|
||||||
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
import javax.persistence.Index;
|
import javax.persistence.Index;
|
||||||
import javax.persistence.JoinColumn;
|
import javax.persistence.JoinColumn;
|
||||||
import javax.persistence.JoinTable;
|
import javax.persistence.JoinTable;
|
||||||
import javax.persistence.ManyToMany;
|
import javax.persistence.ManyToMany;
|
||||||
|
import javax.persistence.Table;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -37,6 +39,7 @@ import java.util.List;
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
@Entity
|
@Entity
|
||||||
|
@Table(name="`Alias`")
|
||||||
public class Alias implements Identifiable {
|
public class Alias implements Identifiable {
|
||||||
private Integer id;
|
private Integer id;
|
||||||
private String alias;
|
private String alias;
|
||||||
|
@ -60,6 +63,7 @@ public class Alias implements Identifiable {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Column(name="`alias`")
|
||||||
public String getAlias() {
|
public String getAlias() {
|
||||||
return alias;
|
return alias;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
<class name="User" table="users">
|
<class name="User" table="users">
|
||||||
<id name="name"/>
|
<id name="name"/>
|
||||||
<property name="password"/>
|
<property name="password" column="`password`"/>
|
||||||
<map name="session" lazy="extra"
|
<map name="session" lazy="extra"
|
||||||
cascade="persist,save-update,delete,delete-orphan">
|
cascade="persist,save-update,delete,delete-orphan">
|
||||||
<key column="userName" not-null="true"/>
|
<key column="userName" not-null="true"/>
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
</class>
|
</class>
|
||||||
|
|
||||||
<class name="Document" table="documents">
|
<class name="Document" table="documents">
|
||||||
<id name="title"/>
|
<id name="title" column="`title`"/>
|
||||||
<property name="content" type="text"/>
|
<property name="content" type="text"/>
|
||||||
<many-to-one name="owner" not-null="true"/>
|
<many-to-one name="owner" not-null="true"/>
|
||||||
</class>
|
</class>
|
||||||
|
@ -55,7 +55,7 @@
|
||||||
<return alias="u" class="User"/>
|
<return alias="u" class="User"/>
|
||||||
<return-join alias="s" property="u.session"/>
|
<return-join alias="s" property="u.session"/>
|
||||||
select
|
select
|
||||||
lower(u.name) as {u.name}, lower(u.password) as {u.password},
|
lower(u.name) as {u.name}, lower(u."password") as {u.password},
|
||||||
lower(s.userName) as {s.key}, lower(s.name) as {s.index}, s.id as {s.element},
|
lower(s.userName) as {s.key}, lower(s.name) as {s.index}, s.id as {s.element},
|
||||||
{s.element.*}
|
{s.element.*}
|
||||||
from users u
|
from users u
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
package org.hibernate.test.flush;
|
package org.hibernate.test.flush;
|
||||||
|
|
||||||
import javax.persistence.CascadeType;
|
import javax.persistence.CascadeType;
|
||||||
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.GeneratedValue;
|
import javax.persistence.GeneratedValue;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
|
@ -59,6 +60,7 @@ public class Book {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Column(name="`title`")
|
||||||
public String getTitle() {
|
public String getTitle() {
|
||||||
return title;
|
return title;
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,18 +23,6 @@
|
||||||
*/
|
*/
|
||||||
package org.hibernate.test.hql;
|
package org.hibernate.test.hql;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.math.BigInteger;
|
|
||||||
import java.sql.Date;
|
|
||||||
import java.sql.Time;
|
|
||||||
import java.sql.Timestamp;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.hibernate.Hibernate;
|
import org.hibernate.Hibernate;
|
||||||
import org.hibernate.HibernateException;
|
import org.hibernate.HibernateException;
|
||||||
import org.hibernate.Query;
|
import org.hibernate.Query;
|
||||||
|
@ -61,23 +49,11 @@ import org.hibernate.dialect.Sybase11Dialect;
|
||||||
import org.hibernate.dialect.SybaseASE15Dialect;
|
import org.hibernate.dialect.SybaseASE15Dialect;
|
||||||
import org.hibernate.dialect.SybaseAnywhereDialect;
|
import org.hibernate.dialect.SybaseAnywhereDialect;
|
||||||
import org.hibernate.dialect.SybaseDialect;
|
import org.hibernate.dialect.SybaseDialect;
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
import org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory;
|
import org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory;
|
||||||
import org.hibernate.internal.util.StringHelper;
|
import org.hibernate.internal.util.StringHelper;
|
||||||
import org.hibernate.persister.entity.DiscriminatorType;
|
import org.hibernate.persister.entity.DiscriminatorType;
|
||||||
import org.hibernate.stat.QueryStatistics;
|
import org.hibernate.stat.QueryStatistics;
|
||||||
import org.hibernate.transform.DistinctRootEntityResultTransformer;
|
|
||||||
import org.hibernate.transform.Transformers;
|
|
||||||
import org.hibernate.type.ComponentType;
|
|
||||||
import org.hibernate.type.ManyToOneType;
|
|
||||||
import org.hibernate.type.Type;
|
|
||||||
|
|
||||||
import org.hibernate.testing.DialectChecks;
|
|
||||||
import org.hibernate.testing.FailureExpected;
|
|
||||||
import org.hibernate.testing.RequiresDialect;
|
|
||||||
import org.hibernate.testing.RequiresDialectFeature;
|
|
||||||
import org.hibernate.testing.SkipForDialect;
|
|
||||||
import org.hibernate.testing.TestForIssue;
|
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
|
||||||
import org.hibernate.test.any.IntegerPropertyValue;
|
import org.hibernate.test.any.IntegerPropertyValue;
|
||||||
import org.hibernate.test.any.PropertySet;
|
import org.hibernate.test.any.PropertySet;
|
||||||
import org.hibernate.test.any.PropertyValue;
|
import org.hibernate.test.any.PropertyValue;
|
||||||
|
@ -87,9 +63,32 @@ import org.hibernate.test.cid.LineItem;
|
||||||
import org.hibernate.test.cid.LineItem.Id;
|
import org.hibernate.test.cid.LineItem.Id;
|
||||||
import org.hibernate.test.cid.Order;
|
import org.hibernate.test.cid.Order;
|
||||||
import org.hibernate.test.cid.Product;
|
import org.hibernate.test.cid.Product;
|
||||||
|
import org.hibernate.testing.DialectChecks;
|
||||||
|
import org.hibernate.testing.FailureExpected;
|
||||||
|
import org.hibernate.testing.RequiresDialect;
|
||||||
|
import org.hibernate.testing.RequiresDialectFeature;
|
||||||
|
import org.hibernate.testing.SkipForDialect;
|
||||||
|
import org.hibernate.testing.TestForIssue;
|
||||||
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
import org.hibernate.transform.DistinctRootEntityResultTransformer;
|
||||||
|
import org.hibernate.transform.Transformers;
|
||||||
|
import org.hibernate.type.ComponentType;
|
||||||
|
import org.hibernate.type.ManyToOneType;
|
||||||
|
import org.hibernate.type.Type;
|
||||||
|
import org.jboss.logging.Logger;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.jboss.logging.Logger;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.BigInteger;
|
||||||
|
import java.sql.Date;
|
||||||
|
import java.sql.Time;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import static org.hibernate.testing.junit4.ExtraAssertions.assertClassAssignability;
|
import static org.hibernate.testing.junit4.ExtraAssertions.assertClassAssignability;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
@ -2542,7 +2541,7 @@ public class ASTParserLoadingTest extends BaseCoreFunctionalTestCase {
|
||||||
an.setBodyWeight(123.45f);
|
an.setBodyWeight(123.45f);
|
||||||
session.persist( an );
|
session.persist( an );
|
||||||
String str = (String) session.createQuery("select str(an.bodyWeight) from Animal an where str(an.bodyWeight) like '%1%'").uniqueResult();
|
String str = (String) session.createQuery("select str(an.bodyWeight) from Animal an where str(an.bodyWeight) like '%1%'").uniqueResult();
|
||||||
if ( getDialect() instanceof DB2Dialect ) {
|
if ( getDialect() instanceof DB2Dialect || getDialect() instanceof TeradataDialect) {
|
||||||
assertTrue( str.startsWith("1.234") );
|
assertTrue( str.startsWith("1.234") );
|
||||||
}
|
}
|
||||||
else //noinspection deprecation
|
else //noinspection deprecation
|
||||||
|
@ -2560,7 +2559,7 @@ public class ASTParserLoadingTest extends BaseCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
//noinspection deprecation
|
//noinspection deprecation
|
||||||
if ( ! ( getDialect() instanceof SybaseDialect ) && ! ( getDialect() instanceof Sybase11Dialect ) && ! ( getDialect() instanceof SybaseASE15Dialect ) && ! ( getDialect() instanceof SybaseAnywhereDialect ) && ! ( getDialect() instanceof SQLServerDialect ) ) {
|
if ( ! ( getDialect() instanceof SybaseDialect ) && ! ( getDialect() instanceof Sybase11Dialect ) && ! ( getDialect() instanceof SybaseASE15Dialect ) && ! ( getDialect() instanceof SybaseAnywhereDialect ) && ! ( getDialect() instanceof SQLServerDialect || getDialect() instanceof TeradataDialect ) ) {
|
||||||
// In TransactSQL (the variant spoken by Sybase and SQLServer), the str() function
|
// In TransactSQL (the variant spoken by Sybase and SQLServer), the str() function
|
||||||
// is explicitly intended for numeric values only...
|
// is explicitly intended for numeric values only...
|
||||||
String dateStr1 = (String) session.createQuery("select str(current_date) from Animal").uniqueResult();
|
String dateStr1 = (String) session.createQuery("select str(current_date) from Animal").uniqueResult();
|
||||||
|
|
|
@ -114,7 +114,7 @@
|
||||||
<property name="classification" type="org.hibernate.test.hql.ClassificationType"/>
|
<property name="classification" type="org.hibernate.test.hql.ClassificationType"/>
|
||||||
<map name="directors">
|
<map name="directors">
|
||||||
<key column="directorZoo_id"/>
|
<key column="directorZoo_id"/>
|
||||||
<index type="string" column="title"/>
|
<index type="string" column="`title`"/>
|
||||||
<many-to-many class="Human"/>
|
<many-to-many class="Human"/>
|
||||||
</map>
|
</map>
|
||||||
<map name="mammals">
|
<map name="mammals">
|
||||||
|
|
|
@ -25,8 +25,8 @@
|
||||||
<id name="id" column="ID" type="long">
|
<id name="id" column="ID" type="long">
|
||||||
<generator class="increment"/>
|
<generator class="increment"/>
|
||||||
</id>
|
</id>
|
||||||
<property name="lower" column="lower" type="int"/>
|
<property name="lower" column="`lower`" type="int"/>
|
||||||
<property name="upper" column="upper" type="string"/>
|
<property name="upper" column="`upper`" type="string"/>
|
||||||
</class>
|
</class>
|
||||||
|
|
||||||
<class name="EntityWithNoArgFunctionAsColumn" table="ENTITY_WITH_NOARG_FN_AS_COL">
|
<class name="EntityWithNoArgFunctionAsColumn" table="ENTITY_WITH_NOARG_FN_AS_COL">
|
||||||
|
|
|
@ -49,6 +49,7 @@ import org.hibernate.dialect.Sybase11Dialect;
|
||||||
import org.hibernate.dialect.SybaseASE15Dialect;
|
import org.hibernate.dialect.SybaseASE15Dialect;
|
||||||
import org.hibernate.dialect.SybaseAnywhereDialect;
|
import org.hibernate.dialect.SybaseAnywhereDialect;
|
||||||
import org.hibernate.dialect.SybaseDialect;
|
import org.hibernate.dialect.SybaseDialect;
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
import org.hibernate.dialect.function.SQLFunction;
|
import org.hibernate.dialect.function.SQLFunction;
|
||||||
import org.hibernate.engine.query.spi.HQLQueryPlan;
|
import org.hibernate.engine.query.spi.HQLQueryPlan;
|
||||||
import org.hibernate.engine.query.spi.ReturnMetadata;
|
import org.hibernate.engine.query.spi.ReturnMetadata;
|
||||||
|
@ -346,17 +347,17 @@ public class HQLTest extends QueryTranslatorTestCase {
|
||||||
assertTranslation("from Animal a where abs(:param - a.bodyWeight) < 2.0");
|
assertTranslation("from Animal a where abs(:param - a.bodyWeight) < 2.0");
|
||||||
assertTranslation("from Animal where abs(:x - :y) < 2.0");
|
assertTranslation("from Animal where abs(:x - :y) < 2.0");
|
||||||
assertTranslation("from Animal where lower(upper(:foo)) like 'f%'");
|
assertTranslation("from Animal where lower(upper(:foo)) like 'f%'");
|
||||||
if ( ! ( getDialect() instanceof SybaseDialect ) && ! ( getDialect() instanceof Sybase11Dialect ) && ! ( getDialect() instanceof SybaseASE15Dialect ) && ! ( getDialect() instanceof SQLServerDialect ) ) {
|
if ( ! ( getDialect() instanceof SybaseDialect ) && ! ( getDialect() instanceof Sybase11Dialect ) && ! ( getDialect() instanceof SybaseASE15Dialect ) && ! ( getDialect() instanceof SQLServerDialect ) && ! ( getDialect() instanceof TeradataDialect ) ) {
|
||||||
// Transact-SQL dialects (except SybaseAnywhereDialect) map the length function -> len;
|
// Transact-SQL dialects (except SybaseAnywhereDialect) map the length function -> len;
|
||||||
// classic translator does not consider that *when nested*;
|
// classic translator does not consider that *when nested*;
|
||||||
// SybaseAnywhereDialect supports the length function
|
// SybaseAnywhereDialect supports the length function
|
||||||
|
|
||||||
assertTranslation("from Animal a where abs(abs(a.bodyWeight - 1.0 + :param) * abs(length('ffobar')-3)) = 3.0");
|
assertTranslation("from Animal a where abs(abs(a.bodyWeight - 1.0 + :param) * abs(length('ffobar')-3)) = 3.0");
|
||||||
}
|
}
|
||||||
if ( !( getDialect() instanceof MySQLDialect ) && ! ( getDialect() instanceof SybaseDialect ) && ! ( getDialect() instanceof Sybase11Dialect ) && !( getDialect() instanceof SybaseASE15Dialect ) && ! ( getDialect() instanceof SybaseAnywhereDialect ) && ! ( getDialect() instanceof SQLServerDialect ) ) {
|
if ( !( getDialect() instanceof MySQLDialect ) && ! ( getDialect() instanceof SybaseDialect ) && ! ( getDialect() instanceof Sybase11Dialect ) && !( getDialect() instanceof SybaseASE15Dialect ) && ! ( getDialect() instanceof SybaseAnywhereDialect ) && ! ( getDialect() instanceof SQLServerDialect ) && ! ( getDialect() instanceof TeradataDialect ) ) {
|
||||||
assertTranslation("from Animal where lower(upper('foo') || upper(:bar)) like 'f%'");
|
assertTranslation("from Animal where lower(upper('foo') || upper(:bar)) like 'f%'");
|
||||||
}
|
}
|
||||||
if ( getDialect() instanceof PostgreSQLDialect || getDialect() instanceof PostgreSQL81Dialect ) {
|
if ( getDialect() instanceof PostgreSQLDialect || getDialect() instanceof PostgreSQL81Dialect || getDialect() instanceof TeradataDialect) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( getDialect() instanceof AbstractHANADialect ) {
|
if ( getDialect() instanceof AbstractHANADialect ) {
|
||||||
|
@ -846,6 +847,7 @@ public class HQLTest extends QueryTranslatorTestCase {
|
||||||
public void testGroupByFunction() {
|
public void testGroupByFunction() {
|
||||||
if ( getDialect() instanceof Oracle8iDialect ) return; // the new hiearchy...
|
if ( getDialect() instanceof Oracle8iDialect ) return; // the new hiearchy...
|
||||||
if ( getDialect() instanceof PostgreSQLDialect || getDialect() instanceof PostgreSQL81Dialect ) return;
|
if ( getDialect() instanceof PostgreSQLDialect || getDialect() instanceof PostgreSQL81Dialect ) return;
|
||||||
|
if ( getDialect() instanceof TeradataDialect) return;
|
||||||
if ( ! H2Dialect.class.isInstance( getDialect() ) ) {
|
if ( ! H2Dialect.class.isInstance( getDialect() ) ) {
|
||||||
// H2 has no year function
|
// H2 has no year function
|
||||||
assertTranslation( "select count(*) from Human h group by year(h.birthdate)" );
|
assertTranslation( "select count(*) from Human h group by year(h.birthdate)" );
|
||||||
|
|
|
@ -1,11 +1,21 @@
|
||||||
package org.hibernate.test.hqlfetchscroll;
|
package org.hibernate.test.hqlfetchscroll;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import org.hibernate.Hibernate;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import org.hibernate.ScrollableResults;
|
||||||
import static org.junit.Assert.assertNull;
|
import org.hibernate.Session;
|
||||||
import static org.junit.Assert.assertSame;
|
import org.hibernate.Transaction;
|
||||||
import static org.junit.Assert.assertTrue;
|
import org.hibernate.dialect.AbstractHANADialect;
|
||||||
import static org.junit.Assert.fail;
|
import org.hibernate.dialect.DB2Dialect;
|
||||||
|
import org.hibernate.dialect.H2Dialect;
|
||||||
|
import org.hibernate.dialect.Oracle8iDialect;
|
||||||
|
import org.hibernate.dialect.SQLServerDialect;
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
|
import org.hibernate.engine.spi.SessionImplementor;
|
||||||
|
import org.hibernate.testing.SkipForDialect;
|
||||||
|
import org.hibernate.testing.TestForIssue;
|
||||||
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
import org.hibernate.transform.DistinctRootEntityResultTransformer;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
@ -13,21 +23,12 @@ import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.hibernate.Hibernate;
|
import static org.junit.Assert.assertEquals;
|
||||||
import org.hibernate.ScrollableResults;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import org.hibernate.Session;
|
import static org.junit.Assert.assertNull;
|
||||||
import org.hibernate.Transaction;
|
import static org.junit.Assert.assertSame;
|
||||||
import org.hibernate.dialect.DB2Dialect;
|
import static org.junit.Assert.assertTrue;
|
||||||
import org.hibernate.dialect.H2Dialect;
|
import static org.junit.Assert.fail;
|
||||||
import org.hibernate.dialect.AbstractHANADialect;
|
|
||||||
import org.hibernate.dialect.Oracle8iDialect;
|
|
||||||
import org.hibernate.dialect.SQLServerDialect;
|
|
||||||
import org.hibernate.engine.spi.SessionImplementor;
|
|
||||||
import org.hibernate.testing.SkipForDialect;
|
|
||||||
import org.hibernate.testing.TestForIssue;
|
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
|
||||||
import org.hibernate.transform.DistinctRootEntityResultTransformer;
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
@SkipForDialect( value = { Oracle8iDialect.class, AbstractHANADialect.class },
|
@SkipForDialect( value = { Oracle8iDialect.class, AbstractHANADialect.class },
|
||||||
comment = "Oracle/HANA do not support the identity column used in the mapping. Extended by NoIdentityHQLScrollFetchTest" )
|
comment = "Oracle/HANA do not support the identity column used in the mapping. Extended by NoIdentityHQLScrollFetchTest" )
|
||||||
|
@ -43,7 +44,8 @@ public class HQLScrollFetchTest extends BaseCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@SkipForDialect( { SQLServerDialect.class, Oracle8iDialect.class, H2Dialect.class, DB2Dialect.class, AbstractHANADialect.class } )
|
@SkipForDialect( { SQLServerDialect.class, Oracle8iDialect.class, H2Dialect.class, DB2Dialect.class,
|
||||||
|
AbstractHANADialect.class, TeradataDialect.class } )
|
||||||
public void testScroll() {
|
public void testScroll() {
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
ScrollableResults results = s.createQuery( QUERY ).scroll();
|
ScrollableResults results = s.createQuery( QUERY ).scroll();
|
||||||
|
|
|
@ -43,6 +43,6 @@ public class Super {
|
||||||
@GeneratedValue(strategy = IDENTITY)
|
@GeneratedValue(strategy = IDENTITY)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Column
|
@Column(name="`value`")
|
||||||
private Long value;
|
private Long value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
</id>
|
</id>
|
||||||
<property name="name" not-null="true" length="50"/>
|
<property name="name" not-null="true" length="50"/>
|
||||||
<property name="upperCaseName" formula="upper(name)" lazy="true"/>
|
<property name="upperCaseName" formula="upper(name)" lazy="true"/>
|
||||||
<property name="summary" not-null="true" length="200" lazy="true"/>
|
<property name="summary" column="`summary`" not-null="true" length="200" lazy="true"/>
|
||||||
<many-to-one name="folder" not-null="true" lazy="no-proxy"/>
|
<many-to-one name="folder" not-null="true" lazy="no-proxy"/>
|
||||||
<many-to-one name="owner" not-null="true" lazy="no-proxy" fetch="select"/>
|
<many-to-one name="owner" not-null="true" lazy="no-proxy" fetch="select"/>
|
||||||
<property name="text" not-null="true" length="2000" lazy="true"/>
|
<property name="text" not-null="true" length="2000" lazy="true"/>
|
||||||
|
|
|
@ -43,7 +43,7 @@ import javax.persistence.Table;
|
||||||
@NamedNativeQuery(name = "DestinationEntity.update", query = "update destination_entity set from_id=:idFrom, fullNameFrom=:fullName"
|
@NamedNativeQuery(name = "DestinationEntity.update", query = "update destination_entity set from_id=:idFrom, fullNameFrom=:fullName"
|
||||||
+ " where id in (:ids)"),
|
+ " where id in (:ids)"),
|
||||||
@NamedNativeQuery(name = "DestinationEntity.delete", query = "delete from destination_entity where id in (:ids)"),
|
@NamedNativeQuery(name = "DestinationEntity.delete", query = "delete from destination_entity where id in (:ids)"),
|
||||||
@NamedNativeQuery(name = "DestinationEntity.selectIds", query = "select id, from_id, fullNameFrom from destination_entity where id in (:ids)") })
|
@NamedNativeQuery(name = "DestinationEntity.selectIds", query = "select id, from_id, fullNameFrom from destination_entity where id in (:ids) order by id") })
|
||||||
public class DestinationEntity {
|
public class DestinationEntity {
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||||
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
||||||
<hibernate-mapping default-lazy="false" package="org.hibernate.test.legacy">
|
<hibernate-mapping default-lazy="false" package="org.hibernate.test.legacy">
|
||||||
<class name="Role">
|
<class name="Role" table="`Role`">
|
||||||
|
|
||||||
<id name="id" type="long">
|
<id name="id" type="long">
|
||||||
<generator class="native"/>
|
<generator class="native"/>
|
||||||
|
@ -36,9 +36,9 @@
|
||||||
<sql-update callable="true">{? = call updatePatient (?, ?, ?, ?)}</sql-update> -->
|
<sql-update callable="true">{? = call updatePatient (?, ?, ?, ?)}</sql-update> -->
|
||||||
<!-- <sql-insert callable="true">insert </sql-insert> -->
|
<!-- <sql-insert callable="true">insert </sql-insert> -->
|
||||||
<!-- <sql-delete>delete from Role where values (?, upper(?)) /** i did this */</sql-insert> -->
|
<!-- <sql-delete>delete from Role where values (?, upper(?)) /** i did this */</sql-insert> -->
|
||||||
<sql-insert>insert into Role (name, id) values (?, upper(?)) /** i did this */</sql-insert>
|
<sql-insert>insert into "Role" (name, id) values (?, upper(?)) /** i did this */</sql-insert>
|
||||||
<!-- <sql-update>update</sql-update>-->
|
<!-- <sql-update>update</sql-update>-->
|
||||||
<sql-delete>delete from Role where id=?</sql-delete>
|
<sql-delete>delete from "Role" where id=?</sql-delete>
|
||||||
|
|
||||||
</class>
|
</class>
|
||||||
|
|
||||||
|
|
|
@ -85,6 +85,7 @@ import org.hibernate.dialect.SAPDBDialect;
|
||||||
import org.hibernate.dialect.Sybase11Dialect;
|
import org.hibernate.dialect.Sybase11Dialect;
|
||||||
import org.hibernate.dialect.SybaseASE15Dialect;
|
import org.hibernate.dialect.SybaseASE15Dialect;
|
||||||
import org.hibernate.dialect.SybaseDialect;
|
import org.hibernate.dialect.SybaseDialect;
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
import org.hibernate.dialect.TimesTenDialect;
|
import org.hibernate.dialect.TimesTenDialect;
|
||||||
import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider;
|
import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider;
|
||||||
import org.hibernate.engine.spi.SessionImplementor;
|
import org.hibernate.engine.spi.SessionImplementor;
|
||||||
|
@ -593,7 +594,7 @@ public class FooBarTest extends LegacyTestCase {
|
||||||
"select foo.foo.foo.foo from Foo foo, Foo foo2 where"
|
"select foo.foo.foo.foo from Foo foo, Foo foo2 where"
|
||||||
+ " foo = foo2.foo and not not ( not foo.string='fizard' )"
|
+ " foo = foo2.foo and not not ( not foo.string='fizard' )"
|
||||||
+ " and foo2.string between 'a' and (foo.foo.string)"
|
+ " and foo2.string between 'a' and (foo.foo.string)"
|
||||||
+ ( ( getDialect() instanceof HSQLDialect || getDialect() instanceof InterbaseDialect || getDialect() instanceof TimesTenDialect ) ?
|
+ ( ( getDialect() instanceof HSQLDialect || getDialect() instanceof InterbaseDialect || getDialect() instanceof TimesTenDialect || getDialect() instanceof TeradataDialect) ?
|
||||||
" and ( foo2.string in ( 'fiz', 'blah') or 1=1 )"
|
" and ( foo2.string in ( 'fiz', 'blah') or 1=1 )"
|
||||||
:
|
:
|
||||||
" and ( foo2.string in ( 'fiz', 'blah', foo.foo.string, foo.string, foo2.string ) )"
|
" and ( foo2.string in ( 'fiz', 'blah', foo.foo.string, foo.string, foo2.string ) )"
|
||||||
|
@ -618,7 +619,7 @@ public class FooBarTest extends LegacyTestCase {
|
||||||
s.save(bar);
|
s.save(bar);
|
||||||
s.save(baz);
|
s.save(baz);
|
||||||
list = s.createQuery(
|
list = s.createQuery(
|
||||||
" from Bar bar where bar.baz.count=667 and bar.baz.count!=123 and not bar.baz.name='1-E-1'"
|
" from Bar bar where bar.baz.count=667 and bar.baz.count<>123 and not bar.baz.name='1-E-1'"
|
||||||
).list();
|
).list();
|
||||||
assertTrue( "query many-to-one", list.size()==1 );
|
assertTrue( "query many-to-one", list.size()==1 );
|
||||||
list = s.createQuery( " from Bar i where i.baz.name='Bazza'" ).list();
|
list = s.createQuery( " from Bar i where i.baz.name='Bazza'" ).list();
|
||||||
|
|
|
@ -34,6 +34,7 @@ import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.hibernate.testing.SkipForDialect;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.hibernate.Criteria;
|
import org.hibernate.Criteria;
|
||||||
|
@ -49,6 +50,7 @@ import org.hibernate.criterion.Restrictions;
|
||||||
import org.hibernate.dialect.HSQLDialect;
|
import org.hibernate.dialect.HSQLDialect;
|
||||||
import org.hibernate.dialect.IngresDialect;
|
import org.hibernate.dialect.IngresDialect;
|
||||||
import org.hibernate.dialect.MySQLDialect;
|
import org.hibernate.dialect.MySQLDialect;
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
import org.hibernate.engine.spi.EntityEntry;
|
import org.hibernate.engine.spi.EntityEntry;
|
||||||
import org.hibernate.internal.SessionImpl;
|
import org.hibernate.internal.SessionImpl;
|
||||||
import org.hibernate.jdbc.AbstractWork;
|
import org.hibernate.jdbc.AbstractWork;
|
||||||
|
@ -1221,6 +1223,10 @@ public class ParentChildTest extends LegacyTestCase {
|
||||||
fail();
|
fail();
|
||||||
}
|
}
|
||||||
catch(ObjectNotFoundException onfe) {
|
catch(ObjectNotFoundException onfe) {
|
||||||
|
if ( getDialect() instanceof TeradataDialect ){
|
||||||
|
session.getTransaction().rollback();
|
||||||
|
session.getTransaction().begin();
|
||||||
|
}
|
||||||
// this is correct
|
// this is correct
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
@ -550,7 +551,7 @@ public class SQLFunctionsTest extends LegacyTestCase {
|
||||||
@Test
|
@Test
|
||||||
public void testBlobClob() throws Exception {
|
public void testBlobClob() throws Exception {
|
||||||
// Sybase does not support ResultSet.getBlob(String)
|
// Sybase does not support ResultSet.getBlob(String)
|
||||||
if ( getDialect() instanceof SybaseDialect || getDialect() instanceof Sybase11Dialect || getDialect() instanceof SybaseASE15Dialect || getDialect() instanceof SybaseAnywhereDialect ) {
|
if ( getDialect() instanceof SybaseDialect || getDialect() instanceof Sybase11Dialect || getDialect() instanceof SybaseASE15Dialect || getDialect() instanceof SybaseAnywhereDialect || getDialect() instanceof TeradataDialect) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
|
|
|
@ -25,6 +25,8 @@ package org.hibernate.test.lob;
|
||||||
import java.sql.Blob;
|
import java.sql.Blob;
|
||||||
|
|
||||||
import junit.framework.AssertionFailedError;
|
import junit.framework.AssertionFailedError;
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
|
import org.hibernate.testing.SkipForDialect;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
@ -54,6 +56,11 @@ public class BlobLocatorTest extends BaseCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@SkipForDialect(
|
||||||
|
value = TeradataDialect.class,
|
||||||
|
jiraKey = "HHH-6637",
|
||||||
|
comment = "Teradata requires locator to be used in same session where it was created/retrieved"
|
||||||
|
)
|
||||||
public void testBoundedBlobLocatorAccess() throws Throwable {
|
public void testBoundedBlobLocatorAccess() throws Throwable {
|
||||||
byte[] original = buildByteArray( BLOB_SIZE, true );
|
byte[] original = buildByteArray( BLOB_SIZE, true );
|
||||||
byte[] changed = buildByteArray( BLOB_SIZE, false );
|
byte[] changed = buildByteArray( BLOB_SIZE, false );
|
||||||
|
|
|
@ -25,6 +25,8 @@ package org.hibernate.test.lob;
|
||||||
|
|
||||||
import java.sql.Clob;
|
import java.sql.Clob;
|
||||||
|
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
|
import org.hibernate.testing.SkipForDialect;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.hibernate.LockMode;
|
import org.hibernate.LockMode;
|
||||||
|
@ -57,6 +59,11 @@ public class ClobLocatorTest extends BaseCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@SkipForDialect(
|
||||||
|
value = TeradataDialect.class,
|
||||||
|
jiraKey = "HHH-6637",
|
||||||
|
comment = "Teradata requires locator to be used in same session where it was created/retrieved"
|
||||||
|
)
|
||||||
public void testBoundedClobLocatorAccess() throws Throwable {
|
public void testBoundedClobLocatorAccess() throws Throwable {
|
||||||
String original = buildString( CLOB_SIZE, 'x' );
|
String original = buildString( CLOB_SIZE, 'x' );
|
||||||
String changed = buildString( CLOB_SIZE, 'y' );
|
String changed = buildString( CLOB_SIZE, 'y' );
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
*/
|
*/
|
||||||
package org.hibernate.test.locking;
|
package org.hibernate.test.locking;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.GeneratedValue;
|
import javax.persistence.GeneratedValue;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
|
@ -57,6 +58,7 @@ public class A {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Column(name="`value`")
|
||||||
public String getValue() {
|
public String getValue() {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,8 @@ package org.hibernate.test.locking;
|
||||||
|
|
||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
|
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
|
import org.hibernate.testing.SkipForDialects;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -51,8 +53,10 @@ import static org.junit.Assert.fail;
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
@TestForIssue( jiraKey = "HHH-5275")
|
@TestForIssue( jiraKey = "HHH-5275")
|
||||||
|
@SkipForDialects( {
|
||||||
@SkipForDialect(value=SybaseASE15Dialect.class, strictMatching=true,
|
@SkipForDialect(value=SybaseASE15Dialect.class, strictMatching=true,
|
||||||
comment = "skip this test on Sybase ASE 15.5, but run it on 15.7, see HHH-6820")
|
comment = "skip this test on Sybase ASE 15.5, but run it on 15.7, see HHH-6820"),
|
||||||
|
})
|
||||||
public class LockModeTest extends BaseCoreFunctionalTestCase {
|
public class LockModeTest extends BaseCoreFunctionalTestCase {
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
<class name="User" table="users">
|
<class name="User" table="users">
|
||||||
<id name="name"/>
|
<id name="name"/>
|
||||||
<property name="password"/>
|
<property name="password" column="`password`"/>
|
||||||
<map name="session" cascade="persist,save-update,delete,delete-orphan">
|
<map name="session" cascade="persist,save-update,delete,delete-orphan">
|
||||||
<key column="userName" not-null="true"/>
|
<key column="userName" not-null="true"/>
|
||||||
<map-key formula="lower(name)" type="string"/>
|
<map-key formula="lower(name)" type="string"/>
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
<return alias="u" class="User"/>
|
<return alias="u" class="User"/>
|
||||||
<return-join alias="s" property="u.session"/>
|
<return-join alias="s" property="u.session"/>
|
||||||
select
|
select
|
||||||
lower(u.name) as {u.name}, lower(u.password) as {u.password},
|
lower(u.name) as {u.name}, lower(u."password") as {u.password},
|
||||||
lower(s.userName) as {s.key}, lower(s.name) as {s.index}, s.id as {s.element},
|
lower(s.userName) as {s.key}, lower(s.name) as {s.index}, s.id as {s.element},
|
||||||
{s.element.*}
|
{s.element.*}
|
||||||
from users u
|
from users u
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<key-property name="type"
|
<key-property name="type"
|
||||||
column="addressType"/>
|
column="addressType"/>
|
||||||
</composite-id>
|
</composite-id>
|
||||||
<property name="street" type="text"/>
|
<property name="street"/>
|
||||||
<property name="state"/>
|
<property name="state"/>
|
||||||
<property name="zip"/>
|
<property name="zip"/>
|
||||||
</class>
|
</class>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<class name="CourseMeeting">
|
<class name="CourseMeeting">
|
||||||
<composite-id name="id" class="CourseMeetingId">
|
<composite-id name="id" class="CourseMeetingId">
|
||||||
<key-property name="courseCode"/>
|
<key-property name="courseCode"/>
|
||||||
<key-property name="day"/>
|
<key-property name="day" column="`day`"/>
|
||||||
<key-property name="period"/>
|
<key-property name="period"/>
|
||||||
<key-property name="location"/>
|
<key-property name="location"/>
|
||||||
</composite-id>
|
</composite-id>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
// $Id: Employee.java 5899 2005-02-24 20:08:04Z steveebersole $
|
// $Id: Employee.java 5899 2005-02-24 20:08:04Z steveebersole $
|
||||||
package org.hibernate.test.subclassfilter;
|
package org.hibernate.test.subclassfilter;
|
||||||
|
import javax.persistence.Column;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
@ -9,6 +10,7 @@ import java.util.Set;
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
public class Employee extends Person {
|
public class Employee extends Person {
|
||||||
|
@Column(name="`title`")
|
||||||
private String title;
|
private String title;
|
||||||
private String department;
|
private String department;
|
||||||
private Employee manager;
|
private Employee manager;
|
||||||
|
|
|
@ -28,6 +28,8 @@ import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
|
import org.hibernate.testing.SkipForDialect;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
|
@ -45,6 +47,11 @@ public class UnionSubclassFilterTest extends BaseCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@SkipForDialect(
|
||||||
|
value = TeradataDialect.class,
|
||||||
|
jiraKey = "HHH-8190",
|
||||||
|
comment = "uses Teradata reserved word - title"
|
||||||
|
)
|
||||||
@SuppressWarnings( {"unchecked"})
|
@SuppressWarnings( {"unchecked"})
|
||||||
public void testFiltersWithUnionSubclass() {
|
public void testFiltersWithUnionSubclass() {
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<property name="region"/>
|
<property name="region"/>
|
||||||
|
|
||||||
<subclass name="Employee" discriminator-value="1">
|
<subclass name="Employee" discriminator-value="1">
|
||||||
<property name="title"/>
|
<property name="title" column="`title`"/>
|
||||||
<property name="department" column="dept"/>
|
<property name="department" column="dept"/>
|
||||||
<many-to-one name="manager" column="mgr_id" class="Employee" cascade="none"/>
|
<many-to-one name="manager" column="mgr_id" class="Employee" cascade="none"/>
|
||||||
<set name="minions" inverse="true" lazy="true" cascade="all">
|
<set name="minions" inverse="true" lazy="true" cascade="all">
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
<joined-subclass name="Employee" table="JEmployee">
|
<joined-subclass name="Employee" table="JEmployee">
|
||||||
<key column="person_id"/>
|
<key column="person_id"/>
|
||||||
|
|
||||||
<property name="title"/>
|
<property name="title" column="`title`"/>
|
||||||
<property name="department" column="dept"/>
|
<property name="department" column="dept"/>
|
||||||
<many-to-one name="manager" class="Employee" column="mgr_id" cascade="none"/>
|
<many-to-one name="manager" class="Employee" column="mgr_id" cascade="none"/>
|
||||||
<set name="minions" inverse="true" cascade="all" lazy="true">
|
<set name="minions" inverse="true" cascade="all" lazy="true">
|
||||||
|
|
|
@ -26,6 +26,8 @@ package org.hibernate.test.unionsubclass2;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.hibernate.dialect.TeradataDialect;
|
||||||
|
import org.hibernate.testing.SkipForDialect;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.hibernate.Hibernate;
|
import org.hibernate.Hibernate;
|
||||||
|
@ -50,6 +52,11 @@ public class UnionSubclassTest extends BaseCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@SkipForDialect(
|
||||||
|
value = TeradataDialect.class,
|
||||||
|
jiraKey = "HHH-8190",
|
||||||
|
comment = "SQL uses Teradata reserved word: title"
|
||||||
|
)
|
||||||
public void testUnionSubclass() {
|
public void testUnionSubclass() {
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
Transaction t = s.beginTransaction();
|
Transaction t = s.beginTransaction();
|
||||||
|
@ -126,6 +133,11 @@ public class UnionSubclassTest extends BaseCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@SkipForDialect(
|
||||||
|
value = TeradataDialect.class,
|
||||||
|
jiraKey = "HHH-8190",
|
||||||
|
comment = "SQL uses Teradata reserved word: title"
|
||||||
|
)
|
||||||
public void testQuerySubclassAttribute() {
|
public void testQuerySubclassAttribute() {
|
||||||
if ( getDialect() instanceof HSQLDialect ) {
|
if ( getDialect() instanceof HSQLDialect ) {
|
||||||
return; // TODO : why??
|
return; // TODO : why??
|
||||||
|
@ -168,6 +180,11 @@ public class UnionSubclassTest extends BaseCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@SkipForDialect(
|
||||||
|
value = TeradataDialect.class,
|
||||||
|
jiraKey = "HHH-8190",
|
||||||
|
comment = "SQL uses Teradata reserved word: title"
|
||||||
|
)
|
||||||
public void testCustomColumnReadAndWrite() {
|
public void testCustomColumnReadAndWrite() {
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
Transaction t = s.beginTransaction();
|
Transaction t = s.beginTransaction();
|
||||||
|
|
Loading…
Reference in New Issue