Skip to content

Instantly share code, notes, and snippets.

@danilobatistaqueiroz
Last active May 12, 2019 16:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danilobatistaqueiroz/8654f66a7e2cb7266fc162dab9115cc3 to your computer and use it in GitHub Desktop.
Save danilobatistaqueiroz/8654f66a7e2cb7266fc162dab9115cc3 to your computer and use it in GitHub Desktop.
Spring

Spring e ORM

Spring é popular porque cuida de todo código repetitivo de recortar e colar que você tem com qualquer estrutura ORM.
Pense em try ... finally blocks, lidando com o objeto de sessão (Hibernate ou outro) e commit / rollback (transações).
Isso você terá que repetir diversas vezes, tornando o código poluído e de difícil manutenção, propenso a erros.

O gerenciamento de transações também é talvez o grande carro chefe do Spring.
Você pode definir transações usando anotações ou no arquivo de configuração do Spring xml.
No arquivo de configuração, o benefício é que você pode usar curingas para especificar que, por exemplo,
todos os métodos de busca em alguns conjuntos de pacotes devem suportar transações (PROPAGATION_SUPPORTS),
mas todos os métodos insert, update, delete devem exigir transações (PROPAGATION_REQUIRED).

Então, eu sempre usaria o Spring, independentemente da estrutura do ORM.
Se você tiver requisitos simples ou não tanto código JDBC, os JDBC templates do Spring podem ser suficientes para você.
E, o Spring facilita a atualização para o Hibernate quando necessário.


Spring não tem um ORM próprio. Você pode usar o Hibernate, o TopLink, o iBatis ou o JDO.

Você está livre para usar o Spring JDBC, mas você tem que escrever todos os mappers por conta própria.

É aconselhável não usar ORM se você não gosta de SQL dinâmico ou da complexidade de uma solução ORM.
Você também pode eliminar uma dependência escolhendo a persistência por conta própria.

fontes:
https://stackoverflow.com/questions/3822551/spring-orm-or-hibernate

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment