2010-01-29 5 views
18

Tworzę małą aplikację dla mojej firmy w Lift. Jestem całkiem nowym graczem w Scala/Lift, więc używam tej szansy na trening. Teraz mam pytanie, który system ORM powinien użyć.ORM dla Lift: Mapper lub JPA?

Z jednej strony Mapper jest domyślnym windą. Z drugiej strony, przeczytałem, że nie jest dobre w niektórych obszarach i zostanie zastąpione przez Record (który nie jest jeszcze dobrze udokumentowany, tak trudny do śledzenia przez nowego użytkownika takiego jak ja).

W przeciwieństwie do Mappera mamy JPA: standardową Javę, przetestowaną i solidną ORM z zaufanymi implementacjami, takimi jak Hibernate, ale niezupełnie "scala-ish" i tracimy możliwości oferowane przez Mapper dzięki integracji z Lift.

Czytałem na listach dyskusyjnych pewne twierdzenia, że ​​JPA staje się drogą do windy, ale nie wydaje się powszechną opinią. Ktoś może wnieść trochę światła w tę sprawę?

Dzięki!

+0

ups, dzięki za korektę Joel :) –

Odpowiedz

3

To zależy od tego, czego potrzebujesz. Jeśli masz model, który w dużym stopniu korzysta z dziedziczenia i relacji jeden/wiele do wielu, możesz być lepiej z WZP.

Jednak jeśli chcesz uzyskać szybki zwrot, Mapper jest drogą do zrobienia. Mapper/Crudify są świetną parą rusztowań i ta moc jest trudna do pokonania.

8

Teraz mam do czynienia z tym samym dylematem :) Weź pod uwagę, że Mapper/Record nie są bardziej skalowalne niż JPA/Hibernate (np. W Mapper i Record używasz zmiennych obiektów). Sprawdź urywki Use of "immutable" Scala entities with Hibernate i Mapping of scala's Option in Hibernate, aby zobaczyć, jak możesz używać Hibernate w dość skalistym stylu. Więc jeśli znasz już Hibernate i jesteś z nim zadowolony, lepiej idź tą drogą. W przeciwnym razie dla małego projektu możesz wypróbować Mapper.