I want to break the circular reference from here "package com.yesser.attendancemanagementapi.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import javax.persistence.*;
import java.io.Serializable;

@Entity
@Table(name = "matiere_attribuee")
public class MatiereAttribuee implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @JsonIgnoreProperties("matiereAttribuees")
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "id_enseignant")
    private Enseignant enseignant;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "id_matiere")
    private Matiere matiere;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "id_classe")
    private Classe classe;

    private float volumeHoraire;

    public MatiereAttribuee() {}

    public MatiereAttribuee(Enseignant enseignant, Matiere matiere, Classe classe, float volumeHoraire) {
        this.enseignant = enseignant;
        this.matiere = matiere;
        this.classe = classe;
        this.volumeHoraire = volumeHoraire;
    }

    // Getters and setters

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Enseignant getEnseignant() {
        return enseignant;
    }

    public void setEnseignant(Enseignant enseignant) {
        this.enseignant = enseignant;
    }

    public Matiere getMatiere() {
        return matiere;
    }

    public void setMatiere(Matiere matiere) {
        this.matiere = matiere;
    }

    public Classe getClasse() {
        return classe;
    }

    public void setClasse(Classe classe) {
        this.classe = classe;
    }

    public float getVolumeHoraire() {
        return volumeHoraire;
    }

    public void setVolumeHoraire(float volumeHoraire) {
        this.volumeHoraire = volumeHoraire;
    }

}
", here's the other model "package com.yesser.attendancemanagementapi.model;

import javax.persistence.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

@Entity
@Table(name = "Enseignant")
public class Enseignant implements LoggedInUser {

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

    private float volumeHoraireTotal;

    private String domaineEnseignement;

    private String email;

    private String username;

    private String password;

    private String role;

    private String matricule;

    @OneToMany(mappedBy = "enseignant", cascade = CascadeType.ALL, orphanRemoval = true)
    private List<Seance> seances;

    public Enseignant() {
        seances = new ArrayList<>();
    }

    public Enseignant(String email, String username, String password, String role, String matricule, float volumeHoraireTotal, String domaineEnseignement) {
        this.email = email;
        this.username = username;
        this.password = password;
        this.role = role;
        this.matricule = matricule;
        this.volumeHoraireTotal = volumeHoraireTotal;
        this.domaineEnseignement = domaineEnseignement;
        seances = new ArrayList<>();
    }

    public Enseignant(String email, String username, String password, String role, String matricule) {
        this.email = email;
        this.username = username;
        this.password = password;
        this.role = role;
        this.matricule = matricule;
        seances = new ArrayList<>();
    }

    // Getters and setters

    public List<Seance> getSeances() {
        return seances;
    }

    public void setSeances(List<Seance> seances) {
        this.seances = seances;
    }

    public Long getId() {
        return id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public String getMatricule() {
        return matricule;
    }

    public void setMatricule(String matricule) {
        this.matricule = matricule;
    }

    public float getVolumeHoraireTotal() {
        return volumeHoraireTotal;
    }

    public void setVolumeHoraireTotal(float volumeHoraireTotal) {
        this.volumeHoraireTotal = volumeHoraireTotal;
    }

    public String getDomaineEnseignement() {
        return domaineEnseignement;
    }

    public void setDomaineEnseignement(String domaineEnseignement) {
        this.domaineEnseignement = domaineEnseignement;
    }
}
"