Class AnsiTrimEmulationFunction

java.lang.Object
org.hibernate.dialect.function.AbstractAnsiTrimEmulationFunction
org.hibernate.dialect.function.AnsiTrimEmulationFunction
All Implemented Interfaces:
SQLFunction

public class AnsiTrimEmulationFunction extends AbstractAnsiTrimEmulationFunction
A SQLFunction implementation that emulates the ANSI SQL trim function on dialects which do not support the full definition. However, this function definition does assume the availability of ltrim, rtrim, and replace functions which it uses in various combinations to emulate the desired ANSI trim() functionality.
  • Field Details

    • LTRIM

      public static final String LTRIM
      See Also:
    • RTRIM

      public static final String RTRIM
      See Also:
    • REPLACE

      public static final String REPLACE
      See Also:
    • SPACE_PLACEHOLDER

      public static final String SPACE_PLACEHOLDER
      See Also:
    • LEADING_SPACE_TRIM_TEMPLATE

      public static final String LEADING_SPACE_TRIM_TEMPLATE
      See Also:
    • TRAILING_SPACE_TRIM_TEMPLATE

      public static final String TRAILING_SPACE_TRIM_TEMPLATE
      See Also:
    • BOTH_SPACE_TRIM_TEMPLATE

      public static final String BOTH_SPACE_TRIM_TEMPLATE
      See Also:
    • BOTH_SPACE_TRIM_FROM_TEMPLATE

      public static final String BOTH_SPACE_TRIM_FROM_TEMPLATE
      See Also:
    • LEADING_TRIM_TEMPLATE

      public static final String LEADING_TRIM_TEMPLATE
      A template for the series of calls required to trim non-space chars from the beginning of text.

      NOTE : essentially we:

    • replace all space chars with the text '${space}$'
    • replace all the actual replacement chars with space chars
    • perform left-trimming (that removes any of the space chars we just added which occur at the beginning of the text)
    • replace all space chars with the replacement char
    • replace all the '${space}$' text with space chars
    • See Also:
    • TRAILING_TRIM_TEMPLATE

      public static final String TRAILING_TRIM_TEMPLATE
      A template for the series of calls required to trim non-space chars from the end of text.

      NOTE: essentially the same series of calls as outlined in LEADING_TRIM_TEMPLATE except that here, instead of left-trimming the added spaces, we right-trim them to remove them from the end of the text.

      See Also:
    • BOTH_TRIM_TEMPLATE

      public static final String BOTH_TRIM_TEMPLATE
      A template for the series of calls required to trim non-space chars from both the beginning and the end of text.

      NOTE: again, we have a series of calls that is essentially the same as outlined in LEADING_TRIM_TEMPLATE except that here we perform both left (leading) and right (trailing) trimming.

      See Also:
  • Constructor Details

    • AnsiTrimEmulationFunction

      public AnsiTrimEmulationFunction()
      Constructs a new AnsiTrimEmulationFunction using LTRIM, RTRIM, and REPLACE respectively.
      See Also:
    • AnsiTrimEmulationFunction

      public AnsiTrimEmulationFunction(String ltrimFunctionName, String rtrimFunctionName, String replaceFunctionName)
      Constructs a trim() emulation function definition using the specified function calls.
      Parameters:
      ltrimFunctionName - The left trim function to use.
      rtrimFunctionName - The right trim function to use.
      replaceFunctionName - The replace function to use.
  • Method Details