Spring Profile a mozliwosc przelaczania hibernate/JDBC

0

Hej,
Potrzebuje zrobic cos takiego by w zaleznosci od profilu uzywac hibernate albo zwyklego JDBC. Moje pytanie jest takie, czy da sie to zrobic przez Spring profiles ( czy warto) czy lepiej w mavenie zrobic 2 osobne moduly, ktore beda ladowane w zaleznosci od profilu.

Idealnie by bylo, abym mogla sie przelaczac w aplikacji pomiedzy jednym a drugim, ale nie jest to konieczne. Da sie ?

1

@Vanilka: tzn. chcesz albo korzystac z JDBC albo hibernate? Trochę to dziwne, ale generalnie się da. Tworzyć np. interface UserRepository a później implentacje JdbcUserRepository i HibernateUserRepository a na podstawie profili tworzysz przy danym kontekście odpowiedni bean.

0
Vanilka napisał(a):

I dla obydwu osobne entities ?

W przypadku JdbcRepository Twoja encja jest zwykłym POJO, do którego możesz sobie mapować rezultaty zapytań itd.

Generalnie, może spróbuj nam wytłumaczyć dlaczego chcesz mieć komunikację z bazą raz z wykorzystaniem ORMa, a raz z czystym JDBC?
Może w Twoim problemie w ogóle nie o to chodzi i moglibyśmy spróbować wspólnie znaleźć lepsze rozwiązanie?

Korzystając z np. Hibernate, nadal możesz pracować prawie jak ze zwykłym JDBC - możesz wywoływać native query, zarządzać transakcją itd.

0

Cel badawczy. Dlatego ppotrzebuje miec mozliwosc uruchomienia aplikacji na rozne sposoby.

1

A może wystarczy Ci JdbcTemplate w springu?

0
pitermaster napisał(a):

A może wystarczy Ci JdbcTemplate w springu?

Zalezy mi na tym aby jak najbardziej natywnie strzelic do tej bazy. Im mniej udziwnien tym lepiej. Co byloby najlepsze ?

1

Jak chcesz natywnie, to po prostu JDBC: Connection, Statement, ResultSet i jazda. Jeśli trochę wygodniej to JdbcTemplate, ew. NamedParameterJdbcTemplate - na bazę w dalszym ciągu idzie napisany przez Ciebie SQL.

0
Vanilka napisał(a):

Cel badawczy. Dlatego ppotrzebuje miec mozliwosc uruchomienia aplikacji na rozne sposoby.

W takiej sytuacji - tak, da się. Np. tak jak napisał @scibi92.

Zalezy mi na tym aby jak najbardziej natywnie strzelic do tej bazy. Im mniej udziwnien tym lepiej. Co byloby najlepsze ?

Dla mnie, osobiście, większym udziwnieniem jest korzystanie z czystego JDBC niż z np. Springowego JdbcTemplate(jeśli już masz tam Springa), czy nawet EntityManager#createNativeQuery(String) (i przeciążenia) - podobnie, jeśli i tak wykorzystujesz JPA (z np. implementacją Hibernate).

Przy czystym JDBC dojdą problemy z obsługą wyjątków, odrobinkę bardziej uciążliwym mapowaniem zwracanych danych i pewnie kilkoma innymi drobiazgami (jak choćby named parameters).

1 użytkowników online, w tym zalogowanych: 0, gości: 1