Dúvida melhor pática na criação de objetos de domínio

Olá Pessoal,

Estava dando uma lida no livro Effective Java, e logo no começo são citadas as formas de criação de objeto onde fala do uso do Padrão telescópio que é uma pessima prática para objetos que necessitam de muitos parametros e tambem do padrão Javabeans com construtor padrao que permite inconsistencia n criacao de objetos com informações obrigatórias e do padrão builder para facilitar a criação de objetos complexos.

Agora a duvida que tenho é: Frameworks ORM trabalham com @Entity(ies) que não usem o padrão JavaBean? Pois sempre que usei ORM em sistemas tenho a prática de usar construtor default, mas agora penso no caso de ter entidades que possuam atributos obrigatórios, pois se posso criar objetos sem parametros permito assim um estado inconsistente na criação de objetos do meu negócio possibilitando que o desenvolvedor, mande para o banco um objeto que nao está devidamente preenchido, recebendo uma exception por falta de parametros obrigatorios por parte do BD. Mas o problema que vejo em ter já um construtor com o devidos parametros está em relação ao managedbean pois se quero inicializar o meu objeto de dominio no MB, precisaria já de valores para ele, ou seja tenho duvidas em relação ao assunto… qual seria a melhor prática?, pensando certamente na consistencia de meus objetos

Abraços
Daniel.

A especificação não te impede de ter mais de um construtor, mas se eu entendi bem não há uma solução ideal para o seu problema pois um construtor sem parâmetros é obrigatório. O que você pode fazer é tentar reduzir a visibilidade do mesmo. Se não me engano o JPA permite o construtor padrão protegido e o Hibernate permite até mesmo construtor privado.