Java CRUD com hibernate

Pessoal estou trabalhando em um projeto pessoal para ir treinando java EE, e estou utilizando CDI e JPA para trabalhar com a minha lógica de negócio e com a persistencia de dados no banco.

Até então estou usando hibernate para realizar a persistencia, e mais especificamente, estou usando funções da classe EntityManager para realizar as minhas ações de CRUD.

A minha pergunta é: - O que o mercado usa? Quero dizer, eu posso fazer todas as minhas operações CRUD na mão ou pelas funções do EntityManager class.

Queria saber o ponto de vista de vocês. O que é melhor? O que o mercado tem certa preferência de uso?

Sei que o tópico é um pouco genérico, mas é só uma questão de saber me adaptar para o mercado.

Não se prenda muito a isso, cada equipe trabalha de uma forma. Se quer aprender essa ferramenta, então faça as operações diretamente com ela (que seria por esse entitymanager) sem abstrações em cima de algo que já é uma abstração. Isso vai te ajudar a fixar sobre o uso da ferramenta. Já no mercado, acontece de ter abstração da abstração, que os mais técnicos gostam, mas você dominando a ferramenta o resto é se adaptar a forma de trabalho da equipe.

Vou nessa mesma linha do @javaflex, não se prenda muito a estes detalhes. Se preocupe em entender a especificação. A partir daí o “como fazer” surge naturalmente. Além do mais, dependendo da stack que vc usar, pode-se existir abstrações que facilitem esse trabalho da JPA, como é o caso do Spring Data. Particularmente, acho as funcionalidades básicas de de CRUD boilerplate. Logo, gosto de ter um repositório genérico implementando as funções básicas e somente especializo os demais repositórios com operações específicas.

Enfim, se prenda em entender como a especificação funciona. A implementação surgirá de forma natural posteriormente.