簡體   English   中英

Spring 數據 Rest 錯誤:原因:org.springframework.data.mapping.PropertyReferenceException:找不到類型項目的屬性名稱

[英]Spring Data Rest error: Caused by: org.springframework.data.mapping.PropertyReferenceException: No property name found for type Project

這是我的項目實體:

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);
    }

}

這是我的項目存儲庫,我嘗試在其中實現搜索查詢方法:

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);
}

這是錯誤的堆棧跟蹤: https://pastebin.com/7qzJNd25 (由於垃圾郵件過濾器,必須使用 pastebin)

我不明白,因為項目實體確實有 projectName 屬性。

您需要在方法命名中使用完全相同的字段名稱意味着findByProjectNameContaining因為您的字段名稱是projectName

Page<Project> findByProjectNameContaining(@RequestParam("projectName") String projectName, Pageable pageable);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM