Java Spring Crudepository,Webservice,返回带有特定字符串的json对象
我对Spring Boot开发非常陌生,我需要一些关于某个案例的帮助 我正在使用JPA/Hibernate Spring和Crudepository(Json格式)创建一个RESTful Web服务 我有以下表格:Java Spring Crudepository,Webservice,返回带有特定字符串的json对象,java,spring,hibernate,spring-mvc,jpa,Java,Spring,Hibernate,Spring Mvc,Jpa,我对Spring Boot开发非常陌生,我需要一些关于某个案例的帮助 我正在使用JPA/Hibernate Spring和Crudepository(Json格式)创建一个RESTful Web服务 我有以下表格: +----+----------+-----------+ | id | filename | +----+----------+-----------+ | 1 | public/11111/Cool | |
+----+----------+-----------+
| id | filename |
+----+----------+-----------+
| 1 | public/11111/Cool |
| 2 | public/22222/Cool |
| 3 | public/33333/Cool |
| 4 | public/44444/Cool |
| 5 | public/55555/Cool |
| 6 | public/66666/Cool |
| 7 | private/77777/Cool |
| 8 | private/88888/Cool |
| 9 | private/99999/Cool |
+----+----------+-----------+
我拥有以下实体:
@Entity
public class Track{
@Id
@Column(name="id")
private int id;
@Column(name="filename")
private String filename;
public Track() {
super();
}
public Track(int id, String filename) {
super();
this.id= id;
this.filename= filename;
}
public int getid() {
return id;
}
public void setid(int id) {
this.id = id;
}
public String getfilename() {
return dateiName;
}
public void setfilename(String filename) {
this.filename = filename;
}
}
积垢:
public interface TrackRepository extends CrudRepository<Track, Integer> {
List<Track> findByid(int id);
}
我需要过滤文件名字符串,然后。。。我就是找不到解决方案。您可以使用hql来实现这一点
public interface MusicRepository extends CrudRepository<Music, Integer> {
List<Music> findByid(int id);
@Query("Select m from Music m where m.filename like '%private' or m.filename like '%public'")
List<Music> findCustom();
}
公共界面MusicRepository扩展了Crudepository{
列表findByid(int-id);
@查询(“从音乐m中选择m,其中m.filename类似“%private”或m.filename类似“%public”)
列出findCustom();
}
它引发以下异常:org.springframework.beans.factory.unsatifiedependencyException:创建名为“trackController”的bean时出错:通过字段“trackRepository”表示的未满足的依赖关系;嵌套异常为org.springframework.beans.factory.BeanCreationException:创建名为“trackRepository”的bean时出错:调用init方法失败;嵌套异常为java.lang.IllegalArgumentException:方法公共抽象java.util.List de.hhn.testing.track.TrackRepository.findCustom()的查询验证失败!请注意,我将名称从music更改为“track”,我还得到了以下异常:由以下原因引起:org.springframework.beans.factory.BeanCreationException:创建名为“trackRepository”的bean时出错:调用init方法失败;嵌套异常为java.lang.IllegalArgumentException:方法公共抽象java.util.List de.hhn.testing.track.TrackRepository.findCustom()的查询验证失败!这一个:java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:track未映射[从track m中选择m,其中m.filename(如“%private”)或m.filename(如“%public”)从Music中选择m,Music这里是类的名称,因此如果将其更改为Music,也应在查询中更改它,所以它变成了从轨迹中选择m
[
{
"id": 7,
"filename": "private/77777/Cool"
}
{
"id": 8,
"filename": "private/88888/Cool"
}
{
"id": 9,
"filename": "private/99999/Cool"
}
]
public interface MusicRepository extends CrudRepository<Music, Integer> {
List<Music> findByid(int id);
@Query("Select m from Music m where m.filename like '%private' or m.filename like '%public'")
List<Music> findCustom();
}