Spring MVC - Mestre Detalhe como fazer

Olá!!! Gente estou tentando fazer uma tela mestre detalhe, alias duas uma com relacionamento 1 para N e outra Muitos para Muitos, para mim telas para este fim é o maior problema por dois motivos um diz respeito a mim mesmo que seria a desenvoltura no desenvolvimento Web e outro porque é mosca branca, dificilmente vemos ai tutoriais que demonstram isto, o crud basicão domina, tem D+ porém não existem sistemas sem mestre detalhe correto? ( apesar de eu achar que crud´s são coisas que nem deviamos perder tempo )
Mais então fiz o crud, não ficou muito bom vou postar aqui o link para o vídeo e verão que esta longe do que poderia ser considerado mais o problema mesmo como vc´s vão perceber é quando ocorre alguma exceção, eu forço a exceção ao incluir um registro que já existe.

A rotina ficaria legal se eu pudesse inserir mais de um registro e inclusive se estivesse editando ou cadastrando o “Mestre” mais não consegui fazer, envolveria ir inserindo registros no html que seriam lidos pelo javascript, por isto fiz com o mestre já persistido.

Mais então voltando eu envio a requisição por ajax, no backend o controller retorna um objeto html ( ModelAndView ) e penso que ai pode estar o problema eu retorno um html para renderizar a tabela com os detalhes mais e quando há uma exceção? ai buga tudo, se alguém puder me ajudar, alguma dica o meu projeto é de estudo e esta no Git.

projeto

assista o vídeo aqui

Isso é programação como qualquer outra coisa. Você tem que debugar no js do browser e no spring do java, apontando no código onde exatamente não está como esperado, senão fica difícil ajudar.

Olá javaflex bom dia, então meu caro realmente o que eu preciso é de uma ajuda sim mais penso que com as informações que postei ( vídeo, o projeto no git ) não seja tão difícil, penso sim que difícil seja criar um mestre detalhe tipo onde tenho um pedido e vou inserindo os detalhes ( produtos ) isto porque no que se refere a Crud Básico a gente assiste a um tutorial, um curso e já saímos desenvolvendo as view ( formulários com validações a nível de banco e ou regra de negócio), não se conta o tanto de exemplos que existem
Eu fui adiante pesquisei, tentei fazer o dever de casa, fiz o formulário mesmo que simples ou seja um relacionamento 1 para n em uma entidade Turno onde cadastro os horários para aquele turno mais com certeza ainda não esta digamos … próxima do aceitável, penso que pode ser melhor , procurei muito por exemplos na web, nos cursos de Java Web, de Angular e chego até a perguntar qdo consigo falar com o instrutor se no conteúdo existe algo relacionado.
Mais é isto meu caro obrigado pelo retorno e vou continuar tentando melhorar o meu código.

O problema que sua dúvida está muito abrangente. Quando peço ajuda pelo menos indico o ponto do código onde estou tendo dificuldade pra dar o próximo passo.

Olá! Boa noite meu caro, sim realmente tenho que concordar com vc realmente esta abrangente, mais tranquilo tô tentando fazer melhor. valeu!!!

O que é isso, mosca branca?

Em programação, muitos utilizam a regra 80:20, logo chamar um crud de basicão é basicão demais.

Isso não agrega substância ao problema.

Todas as ações em um banco de dados, no que se referem à manipulação dos dados, são ações do tipo CRUD: CREATE, READ, UPDATE and DELETE.

CRUD não é um alias para coisas simples de serem implementadas, mas para as ações realizadas na manipulação dos dados.

Exceção é um comportamento previsível, mas não desejado.
Logo, a exceção em si, não é um problema mas parte da solução que torna o sistema robusto a erros.

Assim um erro previsível é tratável e nestes termos é uma exceção.

Se vc força a exceção o erro é previsível, portanto, tratável, logo é uma exceção.

O seu problema é com o hibernate.
Mas o hibernate não tem problema nenhum com vc.

@Column(name="nome", nullable = false, unique = true, length = 20)	
	private String nome;	

O atributo unique, diz que vc não pode ter dois horários escritos da mesma forma.
Remova o unique.

O que vc pode fazer para melhorar suas skills?
Estudar sql.
Estudar tratamento de excessões.
Estudar orientação a objetos, pois a sua taxonomia está ruim e sendo refletida no banco de dados.
Estudar…
Estudar…
Estudar…

Pra que serve um prumo?

Olá @PedreiroDeSoftware boa tarde, meu nobre muito obrigado pelo retorno e então acho que vc não entendeu o que eu quis dizer,

  • Mosca Branca é algo que não Existe , vc já viu uma??? então se procurarmos em dois três minutos teremos diversos cursos ou videos no YT mostrando um Crud, em Angular, em IONIC, em Java ( Web ) mais um crud destes básicos ( básicos quero dizer em que temos uma unica entidade ) mais se vc conseguir me apontar um link de alguma literatura, curso, vídeo que mostre um crud em um modelo relacional com o nivel N:N

Quando eu programava for Windows eu fazia uso de Classes que eu consegui implementar e em 2, três minutos eu tinha uma Tela(Form) de Crud, seja ele de uma entidade ou de N:N e com isto eu me concentrava apenas em regras de negócio porque penso que como desenvolvedor eu não posso perder tempo com coisas básicas como telas ( forms) de cadastros por mais que eu goste de codar, mais não conseguir transpor o que eu fazia com outra ferramenta para o desenvolvimento em Web.

No caso que expus procurando uma ajuda concordo que talvez o meu texto longo pode deixar a coisa muito abrangente, talvez eu não tenha conseguido expor de forma correta minha necessidade e por isto deixei um vídeo e o projeto no Git mais, eu consegui melhorar o código, como estou usando Spring MVC eu estava retornando um ModelAndView e por isto quando havia uma exceção as mensagens ficavam na tela quebrando tudo ficando errado conceitualmente, esteticamente, isto porque eu queria renderizar a tabela com ajax, resolvi( isto é eu consegui melhorar ) trabalhando a parte camada client (js) e retornando agora um ResponseEntity<?>
Quanto a Estudar sei que sim! meu Java é raso preciso realmente estudar, estudar e estudar até porque hoje tento viver disto, mais valeu penso que este tópico nem deve se alongar tanto, quero agradecer ai aos senhores, Obrigado

Pela regra 80: 20 não é necessário um crud completo.


Durante o curso ele aplica o n:n.

Isso é atributo do tratamento de excessões.
No curso que indiquei o tutor aborda isso.
Ocorre que vc deve capturar a exceção antes de printar para o cliente.

O problema é de consistência, não é de cardinalidade.
Quando vc marcou a coluna como unique impediu o registro de horários escritos da mesma forma.

Quanto a cursos, nenhum curso é completo, no sentido de especificidades.
Uma hora vc estuda html, CSS e JS.
Outra hora Server side.
Outra, banco de dados.
Se o curso junta tudo, será superficial/generalista em alguns pontos.
A regra básica é 80:20.
Quer saber o que entregou seu erro?
No vídeo, quando vc força a exceção aparece um UK.
UK normalmente é abreviação relacionada à uma restrição/constraint de chave única quem implica em uma SqlException, que no caso foi ocultada pelas tratativas do hibernate.

Estude Orientação a objetos.
Esqueça a linguagem.
Java, C#, etc.
O padrão é OO é o que vc deve entender.
Até mesmo em JS vc pode aplicar técnicas de OO.