Mamy taką przykładową klasę repozytorium:
@Repository
public class MyRepository {
@PersistenceContext
EntityManager em;
//...
}
W jaki sposób zamienić to na coś takiego?
public class MyRepository {
private EntityManager em;
public Repository(EntityManager entityManager) {
em = entityManager;
}
// ...
}
@Configuration
public class Config {
@Bean
public MyRepository repository() {
return new MyRepository(???);
}
}
Wiem, że @PersistanceContext
ogarnia sporo rzeczy spring stworzy proxy pod to i
tam będzie inny EntityManager per thread (EntityManager nie jest thread-safe) i zamyka go automatycznie.
Natomiast ja chcę mieć też możliwość ręcznie stworzenia tego beana. Czy wgl da się coś takiego zrobić
czy trzeba ręcznie za każdym razem by było tworzyć EntityManagera za pomocą factory. Problem w tym,
że pewnie spring by nic o tym EntityManagerze nie wiedział więc zakładam, że @Transactional
by nie
działał poprawnie??