Ich möchte diese Methode excute:HashCode Loop-Aufruf: OneToMany JPA
@RequestMapping(value = "/list", method = RequestMethod.GET)
public List<Project> listProjects() {
return ps.findAllProjects();
}
Und in meinem DAO ich habe:
@Repository
public interface ProjectDAO extends JpaRepository<Project, Long> {
List<Project> findAllProjectsByShowableTrue(); }
Und in meiner Einheit:
1 Projekt:
.2102. Mitarbeiter:
@Entity
public class Collaborator implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "ProjectID" , nullable = true)
private Project project;
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((project == null) ? 0 : project.hashCode());
return result;
}
//Getters & setters
}
Aber ich bin immer diese Fehlermeldung:
HTTP Status 500 - Handler dispatch failed; nested exception is java.lang.StackOverflowError
root cause
java.lang.StackOverflowError
java.net.AbstractPlainSocketImpl.available(Unknown Source)
java.net.SocketInputStream.available(Unknown Source)
.........
gestionprojet.java.entities.beans.Project.hashCode(Project.java:179)
gestionprojet.java.entities.beans.Collaborator.hashCode(Collaborator.java:88)
Jetzt, wenn der Mitarbeiter Tabelle leer ist: die Anforderung läuft perfekt, aber wenn ich hinzufügen, einen Kollaborateur Zu einem Projekt werden alle damit verbundenen Anfragen abgebrochen.
S.S. HashCode() & Equals() -Methoden werden automatisch generiert.
Jede Hilfe wäre willkommen. Tank dich.
dann, was Sie vorschlagen? –
Ich würde das 'Projekt' aus' Collaborator' 'hashCode' und' equals' nehmen, da es vermutlich ein veränderbares Feld sein wird. Ein "Kollaborateur" ist immer noch derselbe "Kollaborateur", egal ob er in "Projekt" A oder B ist. – djointster