Desenvolvendo um Website de Gerenciamento Financeiro #5

Aperfeiçoando nossas Entidades
Vamos falar sobre o Finder. É um recurso do Ebean que permite que melhoremos nossas entidades com métodos que ajudaram na pesquisa ao banco de dados. Com Kotlin, podemos usá-lo como um companion object para tornar tudo mais fácil. Deixe-me mostrá-lo:
Agora minha entidade Script tem métodos como all(), query(), byId(), update() e outros. Veja a função someExamples no Gist acima, fácil não é?
Você pode, inclusive, criar uma classe ScriptFinder que extende Finder com suas próprias consultas. No meu caso, prefiro deixar isto em uma camada de serviços.
De volta ao nosso projeto
Para ilustrar estes métodos em uso, alterarei nossas entidades e testes. Aqui está o nosso BaseEntitiesRelated.kt atual:
Note que não estou usando data classes (que expliquei há 2 posts atrás) e que também criei o método toString() em todas as entidades para algum debug mais tarde.
Agora alterarei nossos testes para refletir as alterações nas entidades. Por favor, lembre-se que estamos ainda no início deste projeto e você não verá grande vantagem nisto ainda. De fato, eu só queria explicar sobre isto logo porque mais tarde é bem provável que removeremos toda esta funcionalidade em favor de usar uma camada de serviços.
Aqui está o código para as classes de teste:
E aqui vemos a diferença entre as duas versões para refrescar sua memória ou para aqueles que estão me encontrando agora.

Um pouco mais simples, certo?
Te vejo no próximo post!