Liso orm

Bem, em primeiro lugar, gostaria de mencionar que não quero ver o Slick como um ORM. Trabalhar com diferentes ORMs em plataformas de tecnologia me ensinou a melhor evitar ORMs. Dito isto, o Slick forneceria uma boa rede de segurança para escrever seu SQL devido à verificação de tipo. Se você precisar de chamadas de banco de dados sem bloqueio, acho que eles forneceram no Slick mais recente (não tenho certeza se é completamente não bloqueador), mas Quill tem chamadas sem bloqueio. Eu recomendaria que você desse uma chance ao Quill (mais uma vez, não pense que é um ORM tradicional) antes de escolher o mais adequado.

Ele tem pelo menos duas vantagens atraentes sobre o SQL bruto:

  • Suas expressões de consulta são quase completamente verificadas quanto ao tipo, ao passo que juntar strings em seu aplicativo para formar SQL é o mais longe possível de segurança de tipos. Esse tipo de segurança tem muitos benefícios, incluindo refatoração de modelo muito mais segura.
  • Suas consultas são combináveis ​​("mais ou menos" como visualizações SQL).
  • Sua vantagem atraente sobre as soluções ORM é que não é um ORM; tendo passado por muitas experiências horríveis e pura insanidade levando-os a fazer o que eu quero, eu os evito como uma praga.

Como foi dito por outros, o Slick não é um ORM para Scala, ao invés disso, é uma biblioteca para acessar banco de dados transacional no modo Scala. Alguns também se referem a ele como FRM (mapeamento de relacionamento funcional). No Slick SQL é escrito da maneira que você está escrevendo com Coleções Scala. Também atualmente é a mais popular entre as bibliotecas disponíveis. Mas ainda (até a versão 3.2) Slick usa drivers jdbc nativos para conexão Db que está bloqueando por padrão. Também suporta controle de concorrência e verificação suja atualmente.

Em relação a outra opção, você tem o Quill, que é uma biblioteca totalmente assíncrona e sem bloqueios para Scala. Mas, novamente, muito novo e dinâmico. Para acessar o Mongo DB, você tem o Mongo reativo que é assíncrono.

Mas ainda posso dizer que os frameworks de persistência (biblioteca de persistência) para a linguagem Scala ainda precisam ser mais robustos e melhores. Mas será melhor que com certeza .Lighbend e outras pessoas de código aberto estão trabalhando nisso.