Class JdbcBackendDatabase<T,M>

java.lang.Object
io.dialob.db.spi.spring.AbstractDocumentDatabase<T>
io.dialob.db.jdbc.JdbcBackendDatabase<T,M>
All Implemented Interfaces:
JdbcDatabase
Direct Known Subclasses:
JdbcFormDatabase, JdbcQuestionnaireDatabase

public abstract class JdbcBackendDatabase<T,M> extends AbstractDocumentDatabase<T> implements JdbcDatabase
  • Field Details

    • tableName

      protected final String tableName
    • jdbcTemplate

      protected final org.springframework.jdbc.core.JdbcTemplate jdbcTemplate
    • transactionTemplate

      protected final org.springframework.transaction.support.TransactionTemplate transactionTemplate
    • objectMapper

      protected final com.fasterxml.jackson.databind.ObjectMapper objectMapper
    • databaseHelper

      protected final DatabaseHelper databaseHelper
    • isAnyTenantPredicate

      protected final Predicate<String> isAnyTenantPredicate
  • Constructor Details

    • JdbcBackendDatabase

      public JdbcBackendDatabase(org.springframework.transaction.support.TransactionTemplate transactionTemplate, org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, DatabaseHelper databaseHelper, com.fasterxml.jackson.databind.ObjectMapper objectMapper, String schema, String tableName, Class<? extends T> documentClass, Predicate<String> isAnyTenantPredicate)
  • Method Details

    • getDatabaseHelper

      public DatabaseHelper getDatabaseHelper()
      Specified by:
      getDatabaseHelper in interface JdbcDatabase
    • findOne

      public abstract T findOne(@NonNull String tenantId, @NonNull String id, String rev)
    • toId

      protected String toId(byte[] oid)
    • notAnyTenant

      protected boolean notAnyTenant(String tenantId)
    • findOne

      @NonNull public T findOne(String tenantId, @NonNull String id)
    • exists

      public boolean exists(@NonNull String tenantId, @NonNull String id)
    • delete

      public boolean delete(@NonNull String tenantId, @NonNull String id)
    • save

      @NonNull public abstract T save(String tenantId, @NonNull T document)
    • getRevision

      protected Integer getRevision(@NonNull T document)
    • updatedDocument

      @NonNull protected abstract T updatedDocument(@NonNull T document, @NonNull byte[] oid, @NonNull Integer revision, @NonNull Timestamp timestamp, String tenantId)
    • doTransaction

      protected <R> R doTransaction(Function<org.springframework.jdbc.core.JdbcTemplate,R> operation)