@Mapper(AccountMapper.class) @SqlQuery("SELECT * FROM accounts") public abstract Iterator<Account> getAll();
@UseStringTemplate3StatementLocator() @RegisterContainerMapper(QueryKeys.QueryKeysContainerFactory.class) public interface QueryKeys
@Mapper(AccountMapper.class) @SqlQuery("SELECT * FROM accounts ORDER BY " + NUMBER + " LIMIT :limit") public abstract List<Account> getAllFrom(@Bind("limit") int length);
@Mapper(StoredVerificationCodeMapper.class) @SqlQuery("SELECT verification_code, timestamp FROM pending_accounts WHERE number = :number") StoredVerificationCode getCodeForNumber(@Bind("number") String number);
@Mapper(AccountMapper.class) @SqlQuery("SELECT * FROM accounts WHERE " + NUMBER + " = :number") public abstract Account get(@Bind("number") String number);
@Mapper(StoredVerificationCodeMapper.class) @SqlQuery("SELECT verification_code, timestamp FROM pending_devices WHERE number = :number") StoredVerificationCode getCodeForNumber(@Bind("number") String number);
@SqlQuery public Iterable<RecordIdIdMappings> getRecordIdIdMappings(@Define("tableName") String tableName, @SmartBindBean final InternalTenantContext context); }
@SqlQuery("SELECT DISTINCT ON (number, device_id) * FROM keys WHERE number = :number ORDER BY number, device_id, key_id ASC") @Mapper(PreKeyMapper.class) abstract List<KeyRecord> retrieveFirst(@Bind("number") String number);
@SqlQuery public Long getHistoryTargetRecordId(@Bind("recordId") Long recordId, @Define("tableName") final String tableName);
@Mapper(MessageMapper.class) @SqlQuery("SELECT * FROM messages WHERE " + DESTINATION + " = :destination AND " + DESTINATION_DEVICE + " = :destination_device ORDER BY " + TIMESTAMP + " ASC LIMIT " + RESULT_SET_CHUNK_SIZE) abstract List<OutgoingMessageEntity> load(@Bind("destination") String destination, @Bind("destination_device") long destinationDevice);
@SqlQuery("SELECT * FROM keys WHERE number = :number AND device_id = :device_id ORDER BY key_id ASC FOR UPDATE") @Mapper(PreKeyMapper.class) abstract KeyRecord retrieveFirst(@Bind("number") String number, @Bind("device_id") long deviceId);
@Mapper(MessageMapper.class) @SqlUpdate("DELETE FROM messages WHERE " + ID + " = :id AND " + DESTINATION + " = :destination") abstract void remove(@Bind("destination") String destination, @Bind("id") long id);
@Mapper(AccountMapper.class) @SqlQuery("SELECT * FROM accounts WHERE " + NUMBER + " > :from ORDER BY " + NUMBER + " LIMIT :limit") public abstract List<Account> getAllFrom(@Bind("from") String from, @Bind("limit") int length);
@Mapper(MessageMapper.class) @SqlQuery("DELETE FROM messages WHERE "+ ID + " IN (SELECT " + ID + " FROM MESSAGES WHERE " + GUID + " = :guid AND " + DESTINATION + " = :destination ORDER BY " + ID + " LIMIT 1) RETURNING *") abstract OutgoingMessageEntity remove(@Bind("destination") String destination, @Bind("guid") UUID guid);
@Mapper(AccountMapper.class) @SqlQuery("SELECT * FROM accounts OFFSET :offset LIMIT :limit") abstract List<Account> getAll(@Bind("offset") int offset, @Bind("limit") int length);
@Mapper(MessageMapper.class) @SqlQuery("DELETE FROM messages WHERE " + ID + " IN (SELECT " + ID + " FROM messages WHERE " + DESTINATION + " = :destination AND " + DESTINATION_DEVICE + " = :destination_device AND " + SOURCE + " = :source AND " + TIMESTAMP + " = :timestamp ORDER BY " + ID + " LIMIT 1) RETURNING *") abstract OutgoingMessageEntity remove(@Bind("destination") String destination, @Bind("destination_device") long destinationDevice, @Bind("source") String source, @Bind("timestamp") long timestamp);