@RegisterMapperFactory(MyFactory.class) public static interface FooDao { @SqlQuery("select * from something") List<Foo> select(); @SqlUpdate("insert into something (id, name) VALUES (:id, :name)") void insert(@Bind("id") int id, @Bind("name") String name); }
@RegisterMapperFactory(MyFactory.class) public static interface FooDao { @SqlQuery("select * from something") List<Foo> select(); @SqlUpdate("insert into something (id, name) VALUES (:id, :name)") void insert(@Bind("id") int id, @Bind("name") String name); }
@RegisterArgumentFactory(UuidArgumentFactory.class) @RegisterMapperFactory(UuidMapperFactory.class) public interface H2ShardDao extends ShardDao { @Override @SqlBatch("MERGE INTO deleted_shards (shard_uuid, delete_time)\n" + "VALUES (:shardUuid, CURRENT_TIMESTAMP)") void insertDeletedShards(@Bind("shardUuid") Iterable<UUID> shardUuids); @SqlUpdate("DELETE FROM transactions\n" + "WHERE end_time < :maxEndTime\n" + " AND successful IN (TRUE, FALSE)\n" + " AND transaction_id NOT IN (SELECT transaction_id FROM created_shards)\n" + "LIMIT " + CLEANUP_TRANSACTIONS_BATCH_SIZE) int deleteOldCompletedTransactions(@Bind("maxEndTime") Timestamp maxEndTime); }
@RegisterArgumentFactory(UuidArgumentFactory.class) @RegisterMapperFactory(UuidMapperFactory.class) public interface H2ShardDao extends ShardDao { @Override @SqlBatch("MERGE INTO deleted_shards (shard_uuid, delete_time)\n" + "VALUES (:shardUuid, CURRENT_TIMESTAMP)") void insertDeletedShards(@Bind("shardUuid") Iterable<UUID> shardUuids); @SqlUpdate("DELETE FROM transactions\n" + "WHERE end_time < :maxEndTime\n" + " AND successful IN (TRUE, FALSE)\n" + " AND transaction_id NOT IN (SELECT transaction_id FROM created_shards)\n" + "LIMIT " + CLEANUP_TRANSACTIONS_BATCH_SIZE) int deleteOldCompletedTransactions(@Bind("maxEndTime") Timestamp maxEndTime); }
@RegisterArgumentFactory(UuidArgumentFactory.class) @RegisterMapperFactory(UuidMapperFactory.class) public interface MySqlShardDao extends ShardDao { @Override @SqlUpdate("DELETE x\n" + "FROM shard_nodes x\n" + "JOIN shards USING (shard_id)\n" + "WHERE table_id = :tableId") void dropShardNodes(@Bind("tableId") long tableId); @Override @SqlBatch("INSERT IGNORE INTO deleted_shards (shard_uuid, delete_time)\n" + "VALUES (:shardUuid, CURRENT_TIMESTAMP)") void insertDeletedShards(@Bind("shardUuid") Iterable<UUID> shardUuids); // 'order by' is needed in this statement in order to make it compatible with statement-based replication @SqlUpdate("DELETE FROM transactions\n" + "WHERE end_time < :maxEndTime\n" + " AND successful IN (TRUE, FALSE)\n" + " AND transaction_id NOT IN (SELECT transaction_id FROM created_shards)\n" + "ORDER BY end_time, transaction_id\n" + "LIMIT " + CLEANUP_TRANSACTIONS_BATCH_SIZE) int deleteOldCompletedTransactions(@Bind("maxEndTime") Timestamp maxEndTime); }
@RegisterArgumentFactory(UuidArgumentFactory.class) @RegisterMapperFactory(UuidMapperFactory.class) public interface MySqlShardDao extends ShardDao { @Override @SqlUpdate("DELETE x\n" + "FROM shard_nodes x\n" + "JOIN shards USING (shard_id)\n" + "WHERE table_id = :tableId") void dropShardNodes(@Bind("tableId") long tableId); @Override @SqlBatch("INSERT IGNORE INTO deleted_shards (shard_uuid, delete_time)\n" + "VALUES (:shardUuid, CURRENT_TIMESTAMP)") void insertDeletedShards(@Bind("shardUuid") Iterable<UUID> shardUuids); // 'order by' is needed in this statement in order to make it compatible with statement-based replication @SqlUpdate("DELETE FROM transactions\n" + "WHERE end_time < :maxEndTime\n" + " AND successful IN (TRUE, FALSE)\n" + " AND transaction_id NOT IN (SELECT transaction_id FROM created_shards)\n" + "ORDER BY end_time, transaction_id\n" + "LIMIT " + CLEANUP_TRANSACTIONS_BATCH_SIZE) int deleteOldCompletedTransactions(@Bind("maxEndTime") Timestamp maxEndTime); }
@RegisterMapperFactory(BeanMapperFactory.class) @RegisterColumnMapper(ValueTypeMapper.class) public interface TestDao { @SqlQuery("select * from testBean") List<TestBean> listBeans(); @SqlQuery("select * from testBean") List<String> listStrings(); @SqlQuery("select * from testBean") List<TestEnum> listEnums(); @SqlQuery("select * from testBean") List<ValueType> listValueTypes(); }
@RegisterArgumentFactory(UuidArgumentFactory.class) @RegisterMapperFactory(UuidMapperFactory.class) public interface ShardDao
@RegisterArgumentFactory(UuidArgumentFactory.class) @RegisterMapperFactory(UuidMapperFactory.class) public interface ShardDao
@RegisterArgumentFactory(UuidArgumentFactory.class) @RegisterMapperFactory(UuidMapperFactory.class) interface TestingShardDao extends H2ShardDao