Em
ProjectLevel2Repository você tem um mapeamento para ProjectRepository usando um @JoinColumn chamado projectlevel1id que não existe. Pelo que você descreve, isso deve ser mapeado para ProjectLevel1Repository @ManyToOne
@JoinColumn(name="projectlevel1id", referencedColumnName = "projectlevel1id")
@JsonIgnore
private ProjectLevel1Repository projectlevel1;