Hej
Obejrzałem ostatnio prezentacje Paweła Szulca - Architektura to nie bzdura w której opowiadał m. in. o obiektach biznesowych jako czymś w stylu wrapperów na encje i chcę użyć tego w swoim projekcie. Jedyne co w przykładach był użyty EntityManager, a ja u siebie używam u siebie JpaRepository. Przez to mając klase
public abstract class BusinessObject<T extends Identifiable<K>, K extends Serializable> {
@NotNull
protected T entity;
@NotNull
protected JpaRepository<T,K> repository;
public BusinessObject(T entity, JpaRepository<T, K> repository) {
this.entity = entity;
this.repository = repository;
}
public T attached(){
return repository.getOne(entity.getId());
}
public K getId() {
return attached().getId();
}
//hashCode i equals
musze w konstruktorze podawać JpaRepository, z którego dany obiekt ma brać encje co nie jest elegancje z co najmniej dwóch powodów (które ja znalazłem :P). Po pierwsze przy każdej operacji idzie select do bazy (ewentalnie update itp), a po drugie muszę podawać repozytorium przy konstruktorze. I teraz jak to rozwiązać? Mieć specjalne obiekty do tworzenia obiektów biznesowych (juz takie mam do ich tworzenia) z podanymi repozytoriami (przez @Autowire) czy zrobić coś innego?