ORM para elevação:Mapeador ou JPA?
Pergunta
Estou criando um pequeno aplicativo para minha empresa no Lift.Sou um novato em Scala/Lift, então estou aproveitando essa oportunidade para praticar.Agora, tenho uma dúvida sobre qual sistema ORM usar.
Por um lado, Mapper é o padrão do Lift.Por outro lado, li que não é bom em certas áreas e será substituído pelo Record (que ainda não está bem documentado, por isso é difícil de acompanhar por um novo usuário como eu).
Ao contrário do Mapper temos o JPA:Java padrão, ORM testado e robusto com implementações confiáveis como Hibernate, mas não exatamente "scala-ish" e você perde os recursos fornecidos por padrão pelo Mapper devido à sua integração com Lift.
Li nas listas de discussão algumas afirmações de que o JPA está se tornando o caminho a seguir para o Lift, mas não parece uma opinião generalizada.Alguém pode trazer alguma luz sobre o assunto?
Obrigado!
Solução
Depende do que você precisa.Se você tiver um modelo que usa muito herança e relacionamentos um/muitos para muitos, talvez seja melhor usar o JPA.
No entanto, se você deseja um retorno rápido, o Mapper é a melhor opção.Mapper/Crudify são um ótimo par de andaimes e esse poder é difícil de superar.
Outras dicas
Agora estou enfrentando o mesmo dilema:) Leve em consideração que Mapper/Record não são mais Scalish que JPA/Hibernate (por exemplo,tanto no Mapper quanto no Record você usa entidades mutáveis).Verifique trechos Uso de entidades Scala "imutáveis" com Hibernate e Mapeamento da opção do scala no Hibernate para ver como você pode usar o Hibernate de maneira bastante simples.Então, se você já conhece o Hibernate e está confortável com ele, é melhor seguir esse caminho.Caso contrário, para projetos pequenos, você pode tentar o Mapper.