Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
org.hibernate.dialect.Dialect
org.hibernate.dialect.HSQLDialect
public class HSQLDialect
extends Dialect
Nested Class Summary | |
static class |
Field Summary |
Fields inherited from class org.hibernate.dialect.Dialect | |
CLOSED_QUOTE , DEFAULT_BATCH_SIZE , NO_BATCH , QUOTE |
Constructor Summary | |
Method Summary | |
boolean |
|
String |
|
protected String |
|
protected String |
|
String |
|
String |
|
String |
|
String |
|
String |
|
LockingStrategy |
|
String |
|
String |
|
String |
|
ViolatedConstraintNameExtracter | |
boolean |
|
boolean |
|
boolean |
|
boolean |
|
boolean | |
boolean |
|
boolean |
|
boolean |
|
boolean |
|
boolean |
|
boolean |
|
public boolean bindLimitParametersFirst()
Does the LIMIT clause come at the start of the SELECT statement, rather than at the end?
- Overrides:
- bindLimitParametersFirst in interface Dialect
- Returns:
- true if limit parameters should come before other parameters
public String getAddColumnString()
The syntax used to add a column to a table (optional).
- Overrides:
- getAddColumnString in interface Dialect
- Returns:
- The "add column" fragment.
protected String getCreateSequenceString(String sequenceName)
Typically dialects which support sequences can create a sequence with a single command. This is convenience form ofgetCreateSequenceStrings
to help facilitate that. Dialects which support sequences and can create a sequence in a single command need *only* override this method. Dialects which support sequences but require multiple commands to create a sequence should instead overridegetCreateSequenceStrings
.
- Overrides:
- getCreateSequenceString in interface Dialect
- Parameters:
sequenceName
- The name of the sequence
- Returns:
- The sequence creation command
protected String getDropSequenceString(String sequenceName)
Typically dialects which support sequences can drop a sequence with a single command. This is convenience form ofDialect.getDropSequenceStrings(String)
to help facilitate that. Dialects which support sequences and can drop a sequence in a single command need *only* override this method. Dialects which support sequences but require multiple commands to drop a sequence should instead overrideDialect.getDropSequenceStrings(String)
.
- Overrides:
- getDropSequenceString in interface Dialect
- Parameters:
sequenceName
- The name of the sequence
- Returns:
- The sequence drop commands
public String getForUpdateString()
Get the string to append to SELECT statements to acquire locks for this dialect.
- Overrides:
- getForUpdateString in interface Dialect
- Returns:
- The appropriate FOR UPDATE clause string.
public String getIdentityColumnString()
The syntax used during DDL to define a column as being an IDENTITY.
- Overrides:
- getIdentityColumnString in interface Dialect
- Returns:
- The appropriate DDL fragment.
public String getIdentityInsertString()
The keyword used to insert a generated value into an identity column (or null). Need if the dialect does not support inserts that specify no column values.
- Overrides:
- getIdentityInsertString in interface Dialect
- Returns:
- The appropriate keyword.
public String getIdentitySelectString()
Get the select command to use to retrieve the last generated IDENTITY value.
- Overrides:
- getIdentitySelectString in interface Dialect
- Returns:
- The appropriate select command
public String getLimitString(String sql, boolean hasOffset)
Apply s limit clause to the query. Typically dialects utilizevariable
limit caluses when they support limits. Thus, when building the select command we do not actually need to know the limit or the offest since we will just be using placeholders. Here we do still pass along whether or not an offset was specified so that dialects not supporting offsets can generate proper exceptions. In general, dialects will override one or the other of this method andDialect.getLimitString(String,int,int)
.
- Overrides:
- getLimitString in interface Dialect
- Parameters:
hasOffset
- Is the query requesting an offset?
- Returns:
- the modified SQL
public LockingStrategy getLockingStrategy(Lockable lockable, LockMode lockMode)
Get a strategy instance which knows how to acquire a database-level lock of the specified mode for this dialect.
- Overrides:
- getLockingStrategy in interface Dialect
- Parameters:
lockable
- The persister for the entity to be locked.lockMode
- The type of lock to be acquired.
- Returns:
- The appropriate locking strategy.
- Since:
- 3.2
public String getQuerySequencesString()
Get the select command used retrieve the names of all sequences.
- Overrides:
- getQuerySequencesString in interface Dialect
- Returns:
- The select command; or null if sequences are not supported.
- See Also:
SchemaUpdate
public String getSelectSequenceNextValString(String sequenceName)
Generate the select expression fragment that will retreive the next value of a sequence as part of another (typically DML) statement. This differs fromDialect.getSequenceNextValString(String)
in that this should return an expression usable within another statement.
- Overrides:
- getSelectSequenceNextValString in interface Dialect
- Parameters:
sequenceName
- the name of the sequence
- Returns:
- The "nextval" fragment.
public String getSequenceNextValString(String sequenceName)
Generate the appropriate select statement to to retreive the next value of a sequence. This should be a "stand alone" select statement.
- Overrides:
- getSequenceNextValString in interface Dialect
- Parameters:
sequenceName
- the name of the sequence
- Returns:
- String The "nextval" select string.
public ViolatedConstraintNameExtracter getViolatedConstraintNameExtracter()
- Overrides:
- getViolatedConstraintNameExtracter in interface Dialect
public boolean supportsColumnCheck()
Does this dialect support column-level check constraints?
- Overrides:
- supportsColumnCheck in interface Dialect
- Returns:
- True if column-level CHECK constraints are supported; false otherwise.
public boolean supportsCurrentTimestampSelection()
Does this dialect support a way to retrieve the database's current timestamp value?
- Overrides:
- supportsCurrentTimestampSelection in interface Dialect
- Returns:
- True if the current timestamp can be retrieved; false otherwise.
public boolean supportsEmptyInList()
Does this dialect support empty IN lists? For example, is [where XYZ in ()] a supported construct?
- Overrides:
- supportsEmptyInList in interface Dialect
- Returns:
- True if empty in lists are supported; false otherwise.
- Since:
- 3.2
public boolean supportsIdentityColumns()
Does this dialect support identity column key generation?
- Overrides:
- supportsIdentityColumns in interface Dialect
- Returns:
- True if IDENTITY columns are supported; false otherwise.
public boolean supportsIfExistsAfterTableName()
- Overrides:
- supportsIfExistsAfterTableName in interface Dialect
public boolean supportsLimit()
Does this dialect support some form of limiting query results via a SQL clause?
- Overrides:
- supportsLimit in interface Dialect
- Returns:
- True if this dialect supports some form of LIMIT.
public boolean supportsLobValueChangePropogation()
Does the dialect support propogating changes to LOB values back to the database? Talking about mutating the internal value of the locator as opposed to supplying a new locator instance... For BLOBs, the internal value might be changed by:java.sql.Blob.setBinaryStream
,java.sql.Blob.setBytes(long, byte[])
,java.sql.Blob.setBytes(long, byte[], int, int)
, orjava.sql.Blob.truncate(long)
. For CLOBs, the internal value might be changed by:java.sql.Clob.setAsciiStream(long)
,java.sql.Clob.setCharacterStream(long)
,java.sql.Clob.setString(long, String)
,java.sql.Clob.setString(long, String, int, int)
, orjava.sql.Clob.truncate(long)
. NOTE : I do not know the correct answer currently for databases which (1) are not part of the cruise control process or (2) do notDialect.supportsExpectedLobUsagePattern()
.
- Overrides:
- supportsLobValueChangePropogation in interface Dialect
- Returns:
- True if the changes are propogated back to the database; false otherwise.
- Since:
- 3.2
public boolean supportsPooledSequences()
Does this dialect support "pooled" sequences. Not aware of a better name for this. Essentially can we specify the initial and increment values?
- Overrides:
- supportsPooledSequences in interface Dialect
- Returns:
- True if such "pooled" sequences are supported; false otherwise.
public boolean supportsSequences()
Does this dialect support sequences?
- Overrides:
- supportsSequences in interface Dialect
- Returns:
- True if sequences supported; false otherwise.
public boolean supportsTemporaryTables()
HSQL does not really support temp tables; just take advantage of the fact that it is a single user db...
- Overrides:
- supportsTemporaryTables in interface Dialect
public boolean supportsUnique()
Does this dialect support the UNIQUE column syntax?
- Overrides:
- supportsUnique in interface Dialect
- Returns:
- boolean