java.lang.Object
org.springframework.data.relational.core.sql.Table
All Implemented Interfaces:
Segment, TableLike, Visitable

public class Table extends Object implements TableLike
Represents a table reference within a SQL statement. Typically used to denote FROM or JOIN or to prefix a Column.

Renders to: <name> or <name> AS <name>.

Since:
1.1
Author:
Mark Paluch
  • Method Details

    • create

      public static Table create(String name)
      Creates a new Table given name.
      Parameters:
      name - must not be null or empty.
      Returns:
      the new Table.
    • create

      public static Table create(SqlIdentifier name)
      Creates a new Table given name.
      Parameters:
      name - must not be null or empty.
      Returns:
      the new Table.
      Since:
      2.0
    • aliased

      public static Table aliased(String name, String alias)
      Creates a new Table using an alias.
      Parameters:
      name - must not be null or empty.
      alias - must not be null or empty.
      Returns:
      the new Table using the alias.
    • as

      public Table as(String alias)
      Creates a new Table aliased to alias.
      Parameters:
      alias - must not be null or empty.
      Returns:
      the new Table using the alias.
    • as

      public Table as(SqlIdentifier alias)
      Creates a new Table aliased to alias.
      Parameters:
      alias - must not be null or empty.
      Returns:
      the new Table using the alias.
      Since:
      2.0
    • getName

      public SqlIdentifier getName()
      Specified by:
      getName in interface TableLike
      Returns:
      the table name.
    • getReferenceName

      public SqlIdentifier getReferenceName()
      Specified by:
      getReferenceName in interface TableLike
      Returns:
      the table name as it is used in references. This can be the actual name or an alias.
    • toString

      public String toString()
      Description copied from interface: Segment
      Return a SQL string representation of this Segment.

      The representation is intended for debugging purposes and an approximation to the generated SQL. While it might work in the context of a specific dialect, you should not assume that the Segment.toString() representation works across multiple databases.

      Specified by:
      toString in interface Segment
      Returns:
      a SQL string representation of this Segment.
    • visit

      public void visit(Visitor visitor)
      Description copied from interface: Visitable
      Accept a Visitor visiting this Visitable and its nested Visitables if applicable.
      Specified by:
      visit in interface Visitable
      Parameters:
      visitor - the visitor to notify, must not be null.
    • hashCode

      public int hashCode()
      Description copied from interface: Segment
      Generate a hash code from thisSegment.

      Hashcode typically derives from the Segment.toString() representation so two Segments yield the same Segment.hashCode() if their Segment.toString() representation matches.

      Specified by:
      hashCode in interface Segment
      Overrides:
      hashCode in class Object
      Returns:
      a hash code value for this object.
    • equals

      public boolean equals(Object obj)
      Description copied from interface: Segment
      Check whether this Segment is equal to another Segment.

      Equality is typically given if the Segment.toString() representation matches.

      Specified by:
      equals in interface Segment
      Overrides:
      equals in class Object
      Parameters:
      obj - the reference object with which to compare.
      Returns:
      true if this object is the same as the other argument; false otherwise.