Class JdbcMetadataStore

java.lang.Object
org.springframework.integration.jdbc.metadata.JdbcMetadataStore
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, org.springframework.integration.metadata.ConcurrentMetadataStore, org.springframework.integration.metadata.MetadataStore

public class JdbcMetadataStore
extends java.lang.Object
implements org.springframework.integration.metadata.ConcurrentMetadataStore, org.springframework.beans.factory.InitializingBean
Implementation of ConcurrentMetadataStore using a relational database via JDBC. SQL scripts to create the necessary tables are packaged as org/springframework/integration/jdbc/schema-*.sql, where * is the target database type.

The transaction management is required to use this ConcurrentMetadataStore.

Since:
5.0
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static java.lang.String DEFAULT_TABLE_PREFIX
    Default value for the table prefix property.
  • Constructor Summary

    Constructors 
    Constructor Description
    JdbcMetadataStore​(javax.sql.DataSource dataSource)
    Instantiate a JdbcMetadataStore using provided dataSource DataSource.
    JdbcMetadataStore​(org.springframework.jdbc.core.JdbcOperations jdbcOperations)
    Instantiate a JdbcMetadataStore using provided jdbcOperations JdbcOperations.
  • Method Summary

    Modifier and Type Method Description
    void afterPropertiesSet()  
    java.lang.String get​(java.lang.String key)  
    void put​(java.lang.String key, java.lang.String value)  
    java.lang.String putIfAbsent​(java.lang.String key, java.lang.String value)  
    java.lang.String remove​(java.lang.String key)  
    boolean replace​(java.lang.String key, java.lang.String oldValue, java.lang.String newValue)  
    void setLockHint​(java.lang.String lockHint)
    Specify a row lock hint for the query in the lock-based operations.
    void setRegion​(java.lang.String region)
    A unique grouping identifier for all messages persisted with this store.
    void setTablePrefix​(java.lang.String tablePrefix)
    Public setter for the table prefix property.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • JdbcMetadataStore

      public JdbcMetadataStore​(javax.sql.DataSource dataSource)
      Instantiate a JdbcMetadataStore using provided dataSource DataSource.
      Parameters:
      dataSource - a DataSource
    • JdbcMetadataStore

      public JdbcMetadataStore​(org.springframework.jdbc.core.JdbcOperations jdbcOperations)
      Instantiate a JdbcMetadataStore using provided jdbcOperations JdbcOperations.
      Parameters:
      jdbcOperations - a JdbcOperations
  • Method Details

    • setTablePrefix

      public void setTablePrefix​(java.lang.String tablePrefix)
      Public setter for the table prefix property. This will be prefixed to all the table names before queries are executed. Defaults to DEFAULT_TABLE_PREFIX.
      Parameters:
      tablePrefix - the tablePrefix to set
    • setRegion

      public void setRegion​(java.lang.String region)
      A unique grouping identifier for all messages persisted with this store. Using multiple regions allows the store to be partitioned (if necessary) for different purposes. Defaults to DEFAULT.
      Parameters:
      region - the region name to set
    • setLockHint

      public void setLockHint​(java.lang.String lockHint)
      Specify a row lock hint for the query in the lock-based operations. Defaults to FOR UPDATE. Can be specified as an empty string, if the target RDBMS doesn't support locking on tables from queries. The value depends from RDBMS vendor, e.g. SQL Server requires WITH (ROWLOCK).
      Parameters:
      lockHint - the RDBMS vendor-specific lock hint.
      Since:
      5.0.7
    • afterPropertiesSet

      public void afterPropertiesSet()
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • putIfAbsent

      @Transactional public java.lang.String putIfAbsent​(java.lang.String key, java.lang.String value)
      Specified by:
      putIfAbsent in interface org.springframework.integration.metadata.ConcurrentMetadataStore
    • replace

      @Transactional public boolean replace​(java.lang.String key, java.lang.String oldValue, java.lang.String newValue)
      Specified by:
      replace in interface org.springframework.integration.metadata.ConcurrentMetadataStore
    • put

      @Transactional public void put​(java.lang.String key, java.lang.String value)
      Specified by:
      put in interface org.springframework.integration.metadata.MetadataStore
    • get

      @Transactional public java.lang.String get​(java.lang.String key)
      Specified by:
      get in interface org.springframework.integration.metadata.MetadataStore
    • remove

      @Transactional public java.lang.String remove​(java.lang.String key)
      Specified by:
      remove in interface org.springframework.integration.metadata.MetadataStore