Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Haga lo que hicimos: registro de pacientes

Deberás crear la entidad Paciente:

@Getter
@EqualsAndHashCode(of = "id")
@NoArgsConstructor
@AllArgsConstructor
@Entity(name = "Paciente")
@Table(name = "pacientes")
public class Paciente {

@Id @GeneratedValue(strategy = GenerationType.IDENTITY) 
private Long id; 

private String nombre; 
private String email; 
private String documentoIdentidad; 
private String telefono; 

@Embedded 
private Direccion direccion; 

public Paciente(DatosRegistroPaciente datos) { 
    this.nombre = datos.nombre(); 
    this.email = datos.email(); 
    this.telefono = datos.telefono(); 
    this.documentoIdentidad = datos.documento_identidad(); 
    this.direccion = new Direccion(datos.direccion()); 
} 

}
crear un repository:

public interface PacienteRepository extends JpaRepository<Paciente, Long> {
}
Copia el código
Luego deberás cambiar las clases Controller y DTO:

@RestController
@RequestMapping("pacientes")
public class PacienteController {

@Autowired 
private PacienteRepository repository; 

@PostMapping 
@Transactional 
public void registrar(@RequestBody @Valid DatosRegistroPaciente datos) { 
    repository.save(new Paciente(datos)); 
} 

}

public record DatosRegistroPaciente(
@NotBlank String nombre,
@NotBlank @Email String email,
@NotBlank String telefono,
@NotBlank @Pattern(regexp = "\d{7,9}") String documento_identidad,
@NotNull @Valid DatosDireccion direccion
) {
}

Y, por último, se crear una migration

create table pacientes(
id bigint not null auto_increment,
nombre varchar(100) not null,
email varchar(100) not null unique,
documento_identidad varchar(14) not null unique,
telefono varchar(20) not null,
calle varchar(100) not null,
numero varchar(100),
complemento varchar(100),
barrio varchar(100) not null,
ciudad varchar(100) not null,
estado varchar(100) not null,
codigo_postal varchar(9) not null,

primary key(id) 

);