
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "person")
public class Person implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id")
    private Integer id;

    @Column(name = "first_name")
    private String firstName;

    @Column(name = "last_name")
    private String lastName;

    @Column(name = "weight")
    private Double weight;

    @Column(name = "size")
    private Double size;

    @Column(name = "street")
    private String street;

    @Column(name = "postal_code")
    private String postalCode;

    @Column(name = "city")
    private String city;

    @Column(name = "country")
    private String country;

    @Column(name = "version")
    @Version
    private Integer version;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return Objects.equals(id, person.id);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id);
    }

    @Override
    public String toString() {
        return format("Person : [id=%s, firstName=%s, lastName=%s]", getId(), getFirstName(), getLastName());
    }
}


1) Un script SQL PostgreSQL qui va remplire 10 personnes dans la base de données manage_peoples_db

2) Le repository com.training.repository.PersonJpaRepository

3) Le classe d'exception com.training.exceptions.ManagePeoplesException pour gérer les Exception de la couche Service

4) L'interface service com.training.service.IPersonService et sa classe d'implementation com.training.service.PersonService.

5) Le controleur com.training.controller.PersonController et son DTO com.training.controller.PersonApi.

6) Un script SQL H2 qui va remplire 10 personnes dans la base de données manage_peoples_test_db

7) La classe de test unitaire com.training.repository.PersonJpaRepositoryTest qui utilise une base de donnée H2

8) Le classe de test unitaire com.training.service.PersonServiceTest qui utilise une base de donnée H2

9) Le classe de test unitaire com.training.controller.PersonControllerTest qui utilise une base de donnée H2


10) Un script complet postMan qui va realiser le CRUD de l'application.
