【发布时间】:2019-06-01 11:18:06
【问题描述】:
我是 Spring Boot 新手,我试图使用 Spring-boot JPA 创建一个简单的 REST 服务。首先我使用了简单的@Repository,它工作得很好,我可以为我的类中定义的属性编写自定义查询方法。但是当我使用@RepositoryRestResource 时,我无法创建自定义查询方法。主键和其他操作的基本发现正在发生,但我无法创建任何自定义查询。
package com.example.demo.Model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Book {
@Id
@GeneratedValue
int id;
int isbn;
String name;
String author;
double price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getIsbn() {
return isbn;
}
public void setIsbn(int isbn) {
this.isbn = isbn;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
这是仓库
package com.example.demo.repo;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import org.springframework.stereotype.Repository;
import com.example.demo.Model.Book;
@RepositoryRestResource(collectionResourceRel = "books", path = "books")
public interface BookRepo extends JpaRepository<Book, Integer> {
//I want this query to work same as it does for primary Key id.
public Book findByName(@Param("name") String name);
//Same for this
public Book findByIsbn(@Param("isbn") String isbn);
}
由于我没有映射任何用于按名称搜索的 url,我正在尝试像这样搜索localhost:8080/books/?name=java 是否正确?
对于上面的 url,它的行为就像 localhost:8080/books 并忽略后续部分并提供所有书籍详细信息。
我只想有两个类并执行所有基本的休息操作并创建自定义查询。
提前谢谢你。
【问题讨论】:
-
谢谢!真的很有帮助
-
那么你的问题得到解答了吗?
-
是的..我访问它的方式错误。
标签: java spring spring-boot spring-data-jpa spring-data-rest