Em relação a arquitetura e regra de negócio é uma boa prática fazer um mapeamento bidirecional

[quote=x@ndy]Você fez uma colocação interessante aqui: “Tomando por base utilizando o JPA corretamente

O problema é que não uma falha da JPA! No exemplo que eu coloquei seria errado fazer aquilo conforme a JPA? Não. Pois não tem nada na especificação que proíba esse tipo de coisa. É uma falha de modelagem. JPA é apenas uma especificação para fazer o mapeamento objeto relacional. Como alguém vai fazer a modelagem dos objetos não interessa para ela. Se alguém quiser usar TO’s e BO’s ou fazer um modelo rico tanto faz, pois JPA vai servir da mesma maneira!

O problema está no mapeamento bidirecional! Como a ferramenta me permite implementar isso facilmente eu terei problemas facilmente também, mas por falhas na modelagem e não da JPA. É a mesma coisa que culpar o carro por um atropelamento quando o motorista o conduz em alta velocidade. O carro permite que você corra, mas não é culpa dele se você fizer isso em um lugar não permitido e atropelar alguém.

Se você “modelar” corretamente não tera qualquer tipo de problema, seja com JPA para fazer o seu mapeamento objeto relacional ou outra forma qualquer. DDD só ensina técnicas para modelar o sistema de maneira adequada, porém conheço pessoas que o fazem sem nunca terem ouvido falar de DDD.

Então a pergunta melhor seria: Modelando corretamente e utilizando JPA para a persistencia objeto relacional, quais problemas seriam esses?

A resposta é nenhum![/quote]Bem, chegamos a um ponto onde o que você vê, está diferente do que eu vejo.

Eu não vejo que bidirecional seja um erro, se fosse, ñ seria permitido. Pode ser que em casos de modelagem um desenvolvedor crie o relacionamento bidirecional desnecessariamente, mas isso não acarretará problema algum para os dados ou para aplicação.

[quote=Hebert Coelho]Bem, chegamos a um ponto onde o que você vê, está diferente do que eu vejo.

Eu não vejo que bidirecional seja um erro, se fosse, ñ seria permitido. Pode ser que em casos de modelagem um desenvolvedor crie o relacionamento bidirecional desnecessariamente, mas isso não acarretará problema algum para os dados ou para aplicação.[/quote]

Eu te mostrei que isso pode acarretar problemas conforme o exemplo que coloquei! Em um modelo anêmico onde se usa TO’s e BO’s e na qual os objetos são apenas repositório de dados pode não haver problemas mas isso com certeza ocorre em um modelo de dados rico!

[quote=x@ndy][quote=Hebert Coelho]Bem, chegamos a um ponto onde o que você vê, está diferente do que eu vejo.

Eu não vejo que bidirecional seja um erro, se fosse, ñ seria permitido. Pode ser que em casos de modelagem um desenvolvedor crie o relacionamento bidirecional desnecessariamente, mas isso não acarretará problema algum para os dados ou para aplicação.[/quote]

Eu te mostrei que isso pode acarretar problemas conforme o exemplo que coloquei! Em um modelo anêmico onde se usa TO’s e BO’s e na qual os objetos são apenas repositório de dados pode não haver problemas mas isso com certeza ocorre em um modelo de dados rico![/quote]Utilizando o JPA para um modo que ele não foi criado… Não é só pq ele proíbe que vai dar certo seu funcionamento.
Defendo que JPA com bidirecional não dá erro. Se você vai aplicar DDD, então o JPA não seja a melhora escolha (seguindo o que você postou).

[quote=Hebert Coelho][quote=x@ndy][quote=Hebert Coelho]Bem, chegamos a um ponto onde o que você vê, está diferente do que eu vejo.

Eu não vejo que bidirecional seja um erro, se fosse, ñ seria permitido. Pode ser que em casos de modelagem um desenvolvedor crie o relacionamento bidirecional desnecessariamente, mas isso não acarretará problema algum para os dados ou para aplicação.[/quote]

Eu te mostrei que isso pode acarretar problemas conforme o exemplo que coloquei! Em um modelo anêmico onde se usa TO’s e BO’s e na qual os objetos são apenas repositório de dados pode não haver problemas mas isso com certeza ocorre em um modelo de dados rico![/quote]Utilizando o JPA para um modo que ele não foi criado… Não é só pq ele proíbe que vai dar certo seu funcionamento.
Defendo que JPA com bidirecional não dá erro. Se você vai aplicar DDD, então o JPA não seja a melhora escolha (seguindo o que você postou).[/quote]
Isso está ficando repetitivo :smiley: ! De novo, o problema não é o JPA, é o relacionamento bidirecional mal aplicado. O problema existe com ou sem JPA! Se você utilizar mal o relacionamento bidirecional em um modelo rico, vai ter problemas, se você vai usar em um modelo rico com JPA vai ter problemas! Relacionamento bidirecionais devem ser bem aplicados esse é ponto!

DDD não tem nada haver com o problema. Não é o uso dele que gera o problema! O problema está nos relacionamentos indevidos entre objetos em um modelo de objetos rico! Ele apenas propõe uma solução para esse problema que o padrão Aggregate!