package example; import java.util.Arrays; import io.micronaut.context.event.StartupEvent; import io.micronaut.core.annotation.TypeHint; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; import example.domain.Owner; import example.domain.Pet; import example.domain.Pet.PetType; import example.repositories.OwnerRepository; import example.repositories.PetRepository; import io.micronaut.runtime.Micronaut; @Component @TypeHint(typeNames = {"org.h2.Driver", "org.h2.mvstore.db.MVTableEngine"}) public class Application { private static final Logger LOG = LoggerFactory.getLogger(Application.class); private final OwnerRepository ownerRepository; private final PetRepository petRepository; Application(OwnerRepository ownerRepository, PetRepository petRepository) { this.ownerRepository = ownerRepository; this.petRepository = petRepository; } public static void main(String[] args) { Micronaut.run(Application.class); } @EventListener void init(StartupEvent event) { if (LOG.isInfoEnabled()) { LOG.info("Populating data"); } Owner fred = new Owner("Fred"); fred.setAge(45); Owner barney = new Owner("Barney"); barney.setAge(40); ownerRepository.saveAll(Arrays.asList(fred, barney)); Pet dino = new Pet("Dino", fred); Pet bp = new Pet("Baby Puss", fred); bp.setType(PetType.CAT); Pet hoppy = new Pet("Hoppy", barney); petRepository.saveAll(Arrays.asList(dino, bp, hoppy)); } }