Boa madru, galera. Tô aqui batendo cabeça com spring e thymeleaf.
Eu fiz um crudzinho de pacientes e tratamento.
Um paciente pode fazer vários tratamentos e vice-versa.
O problema é que só consigo inserir de um em um tratamento.
Queria saber se alguem aí já conseguiu fazer uma inserção com varios objetos e poderia me ajudar.
Minha ideia é a seguinte. No próprio formulario do paciente teria uma tabela pra eu ir adicionando os tratamentos q ele ta fazendo. Aí salvaria isso. Porém nao consegui nada ainda
Tipo isso, só q com os tratamentos https://i.stack.imgur.com/pLWkz.jpg
Sempre que você for pensar em relacionamentos diferentes de 1:1, você deve considerar que todos os elementos devem estar relacionados.
Como assim?
Veja, quando você tem uma relação 1:1, você referencia o objeto A no objeto B e o objeto B no objeto A. Persiste ambos e pronto. Quando recupera o objeto A você já identifica o objeto B e vice versa.
A mesma lógica se aplica aos relacionamentos 1:N e N:N.
Como assim?
Pegando o exemplo que você mesmo deu.
Você precisa criar o(s) paciente(s):
Paciente p1 = new Paciente();
Paciente p2 = new Paciente();
E criar os tratamentos:
Tratamento t1 = new Tratamento();
Tratamento t2 = new Tratamento();
Tratamento t3 = new Tratamento();
Além disso, você vai definir quais tratamentos se aplicam a cada paciente:
p1.getTratamentos().add(t1);
p1.getTratamentos().add(t3);
p2.getTratamentos().add(t2);
p2.getTratamentos().add(t3);
E, fazer o caminho inverso:
t1.getPacientes().add(p1);
t2.getPacientes().add(p2);
t3.getPacientes().add(p1);
t3.getPacientes().add(p2);
Isso, em teoria, deve resolver. Quando você persistir, as referências serão persistidas adequadamente.
Bom dia ,amigo, obrigado pela explicação. Porém não fiz entender direito. Minha dúvida seria na implementação disso usando thymeleaf. Sabe a parte visual integrando com o backend