class NameRandomizer {
private List<String> names = Arrays.asList("John", "Brad", "Tommy");
@Override
public String getRandomValue() {
return names.get(new Random().nextInt(2));
}
}
Mam sobie klasę jak powyżej. Pomyślałem sobie, że fajnie by było, żeby za każdym razem kiedy będzie wywoływana metoda getRandomValue(), program pobierałby aktualną listę imion z bazy danych.
Mam bazę danych, mam klasę @Entity, w metodzie main() mogę utworzyć sobie instancję EntityManagera jak poniżej
public static void main(String[] args) {
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("myDatabase");
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.close();
entityManagerFactory.close();
}
i tam potrafię wykonywać proste zabiegi. W szczególności wyszukać wszystkie imiona z bazy.
Chciałbym, abyście podpowiedzieli mi jak mogę zrealizować mój pomysł, czyli jakby uruchamiać i zamykać transakcję EntityManagera przy wywoływaniu metody getRandomValue().
Miałem kilka pomysłów. Jednym z nich było
Korzystanie ze Spring Data i próba wykorzystania efektów jego działania poza kontenerem, dokumentacja wskazuje że tak można, ale jakoś mi to nie działa. Nawet lektura http://stackoverflow.com/questions/9123964/how-do-you-use-spring-data-jpa-outside-of-a-spring-container mało pomogła.
Jak się do tego zabrać? Nie wiem czy mieszanie Springa w tak trywialne zadanie ma sens. Jak można to wszytko ładnie pogodzić?