为什么尝试打印实体时java.lang.StackOverflower错误:null

为什么尝试打印实体时java.lang.StackOverflower错误:null,java,spring,hibernate,hibernate-mapping,Java,Spring,Hibernate,Hibernate Mapping,我是春天的新手,我的映射类有问题。 当我想对一个集合进行字符串设置时,我遇到了一个奇怪的错误,比如stackoverflowerr:null 这是我的第一个实体 @Entity(name = "utilisateurs") public class Utilisateur { @Id @GeneratedValue @Column(name = "id_utilisateur") private Integer id; @Pattern(regexp = "[\\p{L} '-]+",messa

我是春天的新手,我的映射类有问题。 当我想对一个集合进行字符串设置时,我遇到了一个奇怪的错误,比如stackoverflowerr:null

这是我的第一个实体

@Entity(name = "utilisateurs")
public class Utilisateur {
@Id @GeneratedValue
@Column(name = "id_utilisateur")
private Integer id;
@Pattern(regexp = "[\\p{L} '-]+",message = "ce champ ne doit pas contenir des 
chiffres")
@NotNull
@Column(name = "nom")
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "id_utilisateur")
private List<Reservation> reservations= new ArrayList<>();

@Override
public String toString() {
    return "Utilisateur{" +
            "id=" + id +

            ", reservations=" + reservations +
            '}';
    }
我还有第三节课的预约

@Id @GeneratedValue
@Column(name = "id")
private Integer id;
@Column(name = "date_creation_reservation")
 @ManyToOne
@JoinColumn(name = "id_utilisateur")
private   Utilisateur utilisateur;
@ManyToOne
@JoinColumn(name = "id_terrain")
private Terrain terrain;
@ManyToOne
@JoinColumn(name = "id_tarif")
private Tarif tarif;
  @Override
public String toString() {
    return "Reservation{" +
            "id=" + id +
            ", dateCreationReservation=" + dateCreationReservation +
            ", dateReservation=" + dateReservation +
            ", heureDebut=" + heureDebut +
            ", heureFin=" + heureFin +
            ", actif=" + actif +
            ", optional=" + optional +
            ", utilisateur=" + utilisateur +
            ", terrain=" + terrain +
            ", tarif=" + tarif +
            '}';
             }
当我试图打印我的列表时出现错误

当尝试在我的控制器中显示此列表时,hier是我的代码:

  @GetMapping("/liste")
   public String showTerrains(Model model){

    //is like terrainsRepository.findAll()
    terrains=metierTerrain.showTerrain();
    System.out.println("voici la liste des terrains"+terrains);

  //  System.out.println( "voici la personne qui a ajouté le 
    terrain"+terrain.getUtilisateur() );
    model.addAttribute("terrains", terrains);


    return "terrains/listeTerrains";
}
我确信这个错误来自地形类中的映射,但不知道为什么以及如何修复它

@Entity(name = "terrains")
public class Terrain {
@ManyToOne
@JoinColumn(name = "id_utilisateur")
private Utilisateur utilisateur;}
你能看到一张有我的错误的图片吗

hier是我数据库中的图像

如果您能为我的问题提供解决方案,我将不胜感激
提前谢谢你

堆栈溢出错误是因为你(隐式地)从调用
地形#toString
调用
地形#toString
调用
地形#toString
调用
地形#toString
调用
地形#toString#


编辑;它不是
Terrain
,而是
Reservation
,正如下面的评论所说。

利用我们的
reservations
toString()
方法中互相调用,这会导致一个无休止的循环,导致堆栈溢出,在toString()中只包含对一个引用除了我们不知道
地形#toString
这一事实之外,我们可以肯定地说,循环是在
利用我们的
预订之间的
这是正确的是,对不起,我混合了
地形
预订
。错误的屏幕截图显示了错误的类别。那么问题出在预订和使用之间?不在地形和地形之间?因为问题是在我用Utisulateur
@ManyToOne@JoinColumn(name=“id\u Utisulateur”)private Utisulateur Utisulateur;}绘制地形图时出现的
因为我还需要打印每个用户的预订集合?如果您需要在
用户用户
中显示
到字符串
方法中的预订,那么您必须自己打印,而不使用
预订#到字符串
。请注意,
Object#toString
并不是为了显示给用户,而是为了调试。
@Entity(name = "terrains")
public class Terrain {
@ManyToOne
@JoinColumn(name = "id_utilisateur")
private Utilisateur utilisateur;}