@Override public UUID retrieveIdFromObject(final Long recordId, final ObjectType objectType) { final TableName tableName = TableName.fromObjectType(objectType); return nonEntitySqlDao.getIdFromObject(recordId, tableName.getTableName()); }
private TableName findTableNameForHistoryTableName(final TableName historyTableName) { for (final TableName tableName : TableName.values()) { if (historyTableName.equals(tableName.getHistoryTableName())) { return tableName; } } return null; } });
@Override public ResultSetMapper mapperFor(final Class type, final StatementContext ctx) { return new LowerToCamelBeanMapper(type); } }
@Override public IDBI get() { final DBI dbi = new DBI(ds); dbi.registerArgumentFactory(new UUIDArgumentFactory()); dbi.registerArgumentFactory(new DateTimeZoneArgumentFactory()); dbi.registerArgumentFactory(new DateTimeArgumentFactory()); dbi.registerArgumentFactory(new LocalDateArgumentFactory()); dbi.registerArgumentFactory(new EnumArgumentFactory()); dbi.registerMapper(new UuidMapper()); dbi.registerMapper(new AuditLogModelDaoMapper()); dbi.registerMapper(new RecordIdIdMappingsMapper()); // Restart transactions in case of deadlocks dbi.setTransactionHandler(new SerializableTransactionRunner()); //final SQLLog log = new Log4JLog(); //dbi.setSQLLog(log); return dbi; } }
public AuditLogModelDao(final EntityAudit entityAudit, final CallContext callContext) { super(entityAudit.getId(), entityAudit.getTableName(), entityAudit.getTargetRecordId(), entityAudit.getChangeType(), entityAudit.getCreatedDate()); this.callContext = callContext; }
@Override public Long doRetrieve(final UUID objectId, final ObjectType objectType) { final TableName tableName = TableName.fromObjectType(objectType); switch (tableName) { case TENANT: return nonEntitySqlDao.getTenantRecordIdFromTenant(objectId.toString()); default: return nonEntitySqlDao.getTenantRecordIdFromObjectOtherThanTenant(objectId.toString(), tableName.getTableName()); } } }, objectId, objectType, cache);
@Override public Long doRetrieve(final UUID objectId, final ObjectType objectType) { final TableName tableName = TableName.fromObjectType(objectType); switch (tableName) { case TENANT: case TAG_DEFINITIONS: case TAG_DEFINITION_HISTORY: return null; case ACCOUNT: return nonEntitySqlDao.getAccountRecordIdFromAccount(objectId.toString()); default: return nonEntitySqlDao.getAccountRecordIdFromObjectOtherThanAccount(objectId.toString(), tableName.getTableName()); } } }, objectId, objectType, cache);
@Test(groups = "slow") public void testRetrieveAccountRecordIdFromAccountObject() throws IOException { insertAccount(); final Long resultAccountRecordId = nonEntityDao.retrieveAccountRecordIdFromObject(accountId, ObjectType.ACCOUNT, null); Assert.assertEquals(resultAccountRecordId, accountRecordId); }
@Test(groups = "slow") public void testRetrieveAccountRecordIdFromTagDefinitionObject() throws IOException { insertTagDefinition(); final Long resultAccountRecordId = nonEntityDao.retrieveAccountRecordIdFromObject(tagDefinitionId, ObjectType.TAG_DEFINITION, null); Assert.assertEquals(resultAccountRecordId, null); }
@Test(groups = "slow") public void testRetrieveAccountRecordIdFromOtherObject() throws IOException { insertTag(); final Long resultAccountRecordId = nonEntityDao.retrieveAccountRecordIdFromObject(tagId, ObjectType.TAG, null); Assert.assertEquals(resultAccountRecordId, accountRecordId); }
@Override public Long doRetrieve(final UUID objectId, final ObjectType objectType) { final TableName tableName = TableName.fromObjectType(objectType); return nonEntitySqlDao.getRecordIdFromObject(objectId.toString(), tableName.getTableName()); } }, objectId, objectType, cache);
@Test(groups = "slow") public void testRetrieveTenantRecordIdFromObject() throws IOException { insertAccount(); final Long resultTenantRecordId = nonEntityDao.retrieveTenantRecordIdFromObject(accountId, ObjectType.ACCOUNT, null); Assert.assertEquals(resultTenantRecordId, tenantRecordId); }
@Test(groups = "slow") public void testRetrieveTenantRecordIdFromTenantObject() throws IOException { insertTenant(); final Long resultTenantRecordId = nonEntityDao.retrieveTenantRecordIdFromObject(tenantId, ObjectType.TENANT, null); Assert.assertEquals(resultTenantRecordId, tenantRecordId); } private void insertAccount() throws IOException {
@Override public Long retrieveLastHistoryRecordIdFromTransaction(@Nullable final Long targetRecordId, final TableName tableName, final NonEntitySqlDao transactional) { // There is no caching here because the value returned changes as we add more history records, and so we would need some cache invalidation return transactional.getLastHistoryRecordId(targetRecordId, tableName.getTableName()); }
@Override public RecordIdIdMappings map(final int index, final ResultSet r, final StatementContext ctx) throws SQLException { final long recordId = r.getLong("record_id"); final UUID id = getUUID(r, "id"); return new RecordIdIdMappings(recordId, id); } }
@Override public Long retrieveHistoryTargetRecordId(@Nullable final Long recordId, final TableName tableName) { return nonEntitySqlDao.getHistoryTargetRecordId(recordId, tableName.getTableName()); }
@Override public Argument build(final Class<?> expectedType, final DateTime value, final StatementContext ctx) { return new DateTimeArgument(value); }
@Override public Argument build(final Class<?> expectedType, final UUID value, final StatementContext ctx) { return new UUIDArgument(value); }
@Override public Argument build(final Class<?> expectedType, final LocalDate value, final StatementContext ctx) { return new LocalDateArgument(value); }
@Override public Argument build(final Class<?> expectedType, final DateTimeZone value, final StatementContext ctx) { return new DateTimeZoneArgument(value); }