### Question:
DatabaseController implements DataController { @Override public Map<String, ? extends DataCollection> initialize(Map<String, ? extends CollectionModel> models, Map<String, ? extends DataCollection> collections) throws Exception { Map<Class<?>, Type<?>> types = new HashMap<>(); types.put(UUID.class, UUIDType.UUID_TYPE); types.put(String.class, StringType.STRING_TYPE); types.put(Integer.class, IntType.INT_TYPE); types.put(int.class, IntType.INT_TYPE); EntityTableLoader entityTableLoader = new EntityTableLoader(this, types); Map<String, Table> entityTables = entityTableLoader.loadModels(models, collections); RemoteTableLoader remoteTableLoader = new RemoteTableLoader(); Map<String, Table> remoteTables = remoteTableLoader.loadTables(); System.out.println("Generated handlers for tables: "); entityTables.forEach((name, table) -> tables.put(name, new TableHandler<>(this, table))); tables.values().forEach(System.out::println); try (Connection connection = dataSource.getConnection()) { compare(entityTables, remoteTables, connection); SqlUtils.consume(connection, "SHOW TABLES;", result -> System.out.println("Remote table: " + result.getString("table_name"))); } return collections; } DatabaseController(HikariDataSource dataSource); @Override Map<String, ? extends DataCollection> initialize(Map<String, ? extends CollectionModel> models, Map<String, ? extends DataCollection> collections); Connection createConnection(); @Override Option<TableHandler<ENTITY>> getHandler(String collection); @Override String getIdentifier();  }### Answer:
@Test void testSQL() { UnsafeUtils.disableIllegalAccessMessage(); HikariConfig config = new HikariConfig(); config.setDriverClassName("org.h2.Driver"); config.setJdbcUrl("jdbc:h2:mem:test-database"); config.setUsername("sa"); config.setPassword("sa"); HikariDataSource dataSource = new HikariDataSource(config); PandaOrm orm = PandaOrm.initialize(new DatabaseController(dataSource)) .createCollection() .name("users") .entity(User.class) .repository(UserRepository.class) .append() .createCollection() .name("groups") .entity(Group.class) .repository(GroupRepository.class) .append() .collect(); UserRepository userRepository = orm.getCollection("users").getRepository(UserRepository.class); GroupRepository groupRepository = orm.getCollection("groups").getRepository(GroupRepository.class); User user = userRepository.createUser("insertt"); System.out.println("User: " + user); user.setName("makub"); System.out.println("Updated user: " + user); Group group = groupRepository.createGroup("natural born pranksters"); System.out.println("Group: " + group); user.setGroup(group); System.out.println("User group: " + user); }