Package org.pjdbc.sql

Class WhereTransformer

All Implemented Interfaces:
JdbcTransformer

public class WhereTransformer extends AbstractJdbcTransformer
Transformer that appends conditions to WHERE clauses in SQL.

Adds a condition to SELECT, UPDATE, and DELETE statements. If a WHERE clause exists, the condition is appended with AND. If no WHERE clause exists, one is added before any GROUP BY, HAVING, ORDER BY, LIMIT, or end of statement.

URL Configuration

 jdbc:filter[where=deleted=false]:jdbc:postgresql://localhost/db
 jdbc:filter[where=tenant_id=123]:jdbc:mysql://localhost/db
 

Examples

  • SELECT * FROM usersSELECT * FROM users WHERE deleted=false
  • SELECT * FROM users WHERE active=trueSELECT * FROM users WHERE active=true AND deleted=false
  • SELECT * FROM users ORDER BY nameSELECT * FROM users WHERE deleted=false ORDER BY name
  • UPDATE users SET x=1UPDATE users SET x=1 WHERE deleted=false
  • DELETE FROM usersDELETE FROM users WHERE deleted=false

Limitations

  • Uses regex heuristics - may not handle complex SQL perfectly
  • Does not parse SQL AST
  • INSERT statements are not modified
  • Subqueries may not be handled correctly in all cases
See Also:
  • invalid reference
    FilterDriver
  • Constructor Details

    • WhereTransformer

      public WhereTransformer(String condition)
      Create a WhereTransformer with the specified condition.
      Parameters:
      condition - the condition to append (e.g., "deleted=false")
  • Method Details