Java Spring数据Rest错误:原因:org.springframework.Data.mapping.PropertyReferenceException:找不到类型Project的属性名称

Java Spring数据Rest错误:原因:org.springframework.Data.mapping.PropertyReferenceException:找不到类型Project的属性名称,java,spring,rest,jpa,spring-data-jpa,Java,Spring,Rest,Jpa,Spring Data Jpa,这是我的项目实体: import lombok.Getter; import lombok.Setter; import javax.persistence.*; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.HashSet; import java.util.Set; @Entity @Table(name="p

这是我的项目实体:

import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.HashSet;
import java.util.Set;

@Entity
@Table(name="project")
//@Data is bugged
@Getter
@Setter
public class Project {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @Column(name = "project_name")
    @NotNull
    @NotEmpty
    private String projectName;

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

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


    @ManyToMany(fetch = FetchType.LAZY,
                cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.DETACH, CascadeType.REFRESH})
    @JoinTable(
            name="project_employee",
            joinColumns=@JoinColumn(name="project_id"),
            inverseJoinColumns=@JoinColumn(name="employee_id")
    )
    private Set<Employee> employees;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "project")
    private Set<Ticket> tickets;

    public void addEmployee(Employee employee) {
        if(employees == null) {
            employees = new HashSet<Employee>();
        }
        employees.add(employee);
    }

}
导入lombok.Getter;
进口龙目织机;
导入javax.persistence.*;
导入javax.validation.constraints.NotEmpty;
导入javax.validation.constraints.NotNull;
导入java.util.HashSet;
导入java.util.Set;
@实体
@表(name=“项目”)
//@数据被窃听了
@吸气剂
@塞特
公共类项目{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“id”)
私人长id;
@列(name=“项目名称”)
@NotNull
@空空如也
私有字符串projectName;
@列(name=“description”)
私有字符串描述;
@列(name=“stage”)
私有字符串阶段;
@ManyToMany(fetch=FetchType.LAZY,
cascade={CascadeType.PERSIST,CascadeType.MERGE,CascadeType.DETACH,CascadeType.REFRESH})
@可接合(
name=“项目\员工”,
joinColumns=@JoinColumn(name=“project\u id”),
inverseJoinColumns=@JoinColumn(name=“employee\u id”)
)
私人雇员;
@OneToMany(cascade=CascadeType.ALL,mappedBy=“项目”)
私人订票;
公共无效添加员工(员工){
if(employees==null){
employees=newhashset();
}
employees.add(employees);
}
}
这是我的项目存储库,我尝试在其中实现搜索查询方法:

import com.ghevi.bugtracker.entity.Project;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestParam;

@CrossOrigin("http://localhost:4200")
@RepositoryRestResource(collectionResourceRel = "projects", path = "projects")
public interface ProjectRepository extends JpaRepository<Project, Long> {
    Page<Project> findByNameContaining(@RequestParam("projectName") String projectName, Pageable pageable);
}
import com.ghevi.bugtracker.entity.Project;
导入org.springframework.data.domain.Page;
导入org.springframework.data.domain.Pageable;
导入org.springframework.data.jpa.repository.JpaRepository;
导入org.springframework.data.rest.core.annotation.RepositoryRestResource;
导入org.springframework.web.bind.annotation.CrossOrigin;
导入org.springframework.web.bind.annotation.RequestParam;
@交叉原点(“http://localhost:4200")
@RepositoryRestResource(collectionResourceRel=“projects”,path=“projects”)
公共接口项目存储库扩展了JpaRepository{
页面findByNameContaining(@RequestParam(“projectName”)字符串projectName,可分页;
}
这是错误的堆栈跟踪: (由于垃圾邮件过滤器,必须使用pastebin)


我不明白,因为项目实体确实有projectName属性。

您需要在方法命名方式
findByProjectNameContaining
中使用与字段名
projectName
完全相同的字段名

Page<Project> findByProjectNameContaining(@RequestParam("projectName") String projectName, Pageable pageable);
Page findbyprojectname包含(@RequestParam(“projectName”)字符串projectName,可分页;
您是否尝试过@Param(“projectName”)而不是@RequestParam(“projectName”)