Я разрабатываю простой проект CRUD с Spring Boot. Я успешно завершил соединение с базой данных и отображение записей из одной таблицы. Теперь я хочу показать «Телефоны», принадлежащие «Клиенту», но когда я нажимаю «VerDetalle» (http://localhost: 8080 / listar ), он показывает таблицу без какой-либо записи (очевидно, что таблица имеет данные)
Я думаю, что проблема заключается в методе telefonosById (nro_cliente) TelefonoService и verDetalle (@PathVariable Integer nro_cliente, модель) контроллера.
"E01_cliente" и "E01_tef" являются субъектами.
@Entity
public class E01_telefono {
private Integer codigo_area;
@Id
private Integer nro_telefono;
private char tipo;
private Integer nro_cliente;
@ManyToOne
private E01_cliente cliente;
//**Constructor and Getters and Setters**//
Объект E01_cliente:
@Entity
public class E01_cliente {
@Id
private Integer nro_cliente;
private String nombre;
private String apellido;
private String direccion;
private boolean activo;
@OneToMany(mappedBy = "cliente")
private Set<E01_telefono> telefonos;
}
Сервисный телефон:
@Service
public class TelefonoService implements IServiceTelefono {
@Autowired
private ITelefono telData;
@Override
public List<E01_telefono> AllPhones() {
return (List<E01_telefono>) telData.findAll();
}
@Override
public Optional<E01_telefono> telefonosById(Integer nro_cliente) {
return telData.findById(nro_cliente);
}
Контроллер:
@Controller
public class Controlador {
@Autowired
private IServiceCliente serviceCliente;
@Autowired
private IServiceTelefono serviceTelefono;
@GetMapping("/listar")
public String listarClientes(Model model){
List<E01_cliente> clientes = serviceCliente.listarClientes();
model.addAttribute("clientes", clientes);
return "index";
}
@GetMapping("/agregarCliente")
public String agregarCliente(Model model){
model.addAttribute("cliente", new E01_cliente());
//Cuando el usuario presione se mostrara el formulario correspondiente al Cliente
return "formulario";
}
@PostMapping("/guardarCliente")
public String guardarCliente(Model model, @Valid E01_cliente cliente){
serviceCliente.guardarCliente(cliente);
return "redirect:/listar";
}
@GetMapping("/editarCliente/{nro_cliente}")
public String editarCliente(@PathVariable Integer nro_cliente, Model model ){
Optional<E01_cliente> clientEdit = serviceCliente.listarId(nro_cliente);
model.addAttribute("cliente", clientEdit);
return "formulario";
}
@GetMapping("/eliminarCliente/{nro_cliente}")
public String borrarCliente(Model model, @PathVariable Integer nro_cliente){
serviceCliente.eliminarCliente(nro_cliente);
return "redirect:/listar";
}
@GetMapping("/verDetalle/{nro_cliente}")
public String verDetalle(@PathVariable Integer nro_cliente, Model model){
Optional<E01_telefono> telefonosCliente = serviceTelefono.telefonosById(nro_cliente);
if(telefonosCliente.isPresent()) {
model.addAttribute("telefonos", telefonosCliente);
}
return "detalleCliente";
}
}
HTML Листья тимьяна "detalleCliente. html":
<body>
<div class="container mt-4">
<table class="table">
<thead>
<tr>
<th>Código Área</th>
<th>Teléfono</th>
<th>Tipo</th>
<th>Número Cliente</th>
</tr>
</thead>
<tbody>
<tr th:each="telefono:${telefonos}">
<td th:text="${telefono.codigo_area}"></td>
<td th:text="${telefono.nro_telefono}"></td>
<td th:text="${telefono.tipo}"></td>
<td th:text="${telefono.nro_cliente}"></td>
</tr>
</tbody>
</table>
</div>
</body>