Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.hibernate.dialect.function
Class SQLFunctionTemplate

    java.lang.Object
      org.hibernate.dialect.function.SQLFunctionTemplate

All Implemented Interfaces:
  SQLFunction

    public class SQLFunctionTemplate

extends Object
implements SQLFunction

Represents HQL functions that can have different representations in different SQL dialects. E.g. in HQL we can define function `concat(?1, ?2)` to concatenate two strings p1 and p2. Target SQL function will be dialect-specific, e.g. `(?1 || ?2)` for Oracle, `concat(?1, ?2)` for MySql, `(?1 + ?2)` for MS SQL. Each dialect will define a template as a string (exactly like above) marking function parameters with '?' followed by parameter's index (first index is 1).

Version:
  `$Revision: 6608 $`
Author:
  Alexey Loubyansky

Constructor Summary
`SQLFunctionTemplate(Type type, String template)`
`SQLFunctionTemplate(Type type, String template, boolean hasParenthesesIfNoArgs)`

Method Summary
`Type` | `getReturnType(Type columnType, Mapping mapping)` The return type of the function.
`boolean` | `hasArguments()` Does this function have any arguments?
`boolean` | `hasParenthesesIfNoArguments()` If there are no arguments, are parens required?
`String` | `render(List args, SessionFactoryImplementor factory)` Applies the template to passed in arguments.
`String` | `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### SQLFunctionTemplate

    public SQLFunctionTemplate(Type type,
                               String template)

### SQLFunctionTemplate

    public SQLFunctionTemplate(Type type,
                               String template,
                               boolean hasParenthesesIfNoArgs)

Method Detail

### render

    public String render(List args,
                         SessionFactoryImplementor factory)

  Applies the template to passed in arguments.

  Specified by:
    `render` in interface `SQLFunction`
  Parameters:
    `args` - function arguments
    `factory` - The SessionFactory
  Returns:
    generated SQL function call

### getReturnType

    public Type getReturnType(Type columnType,
                              Mapping mapping)
                       throws QueryException

  Description copied from interface: `SQLFunction`
  The return type of the function. May be either a concrete type which is preset, or variable depending upon the type of the first function argument.

  Specified by:
    `getReturnType` in interface `SQLFunction`
  Parameters:
    `columnType` - the type of the first argument
    `mapping` - The mapping source.
  Returns:
    The type to be expected as a return.
  Throws:
    `QueryException` - Indicates an issue resolving the return type.

### hasArguments

    public boolean hasArguments()

  Description copied from interface: `SQLFunction`
  Does this function have any arguments?

  Specified by:
    `hasArguments` in interface `SQLFunction`
  Returns:
    True if the function expects to have parameters; false otherwise.

### hasParenthesesIfNoArguments

    public boolean hasParenthesesIfNoArguments()

  Description copied from interface: `SQLFunction`
  If there are no arguments, are parens required?

  Specified by:
    `hasParenthesesIfNoArguments` in interface `SQLFunction`
  Returns:
    True if a no-arg call of this function requires parentheses.

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD