当前位置: 首页 > 知识库问答 >
问题:

Spring CrudRepository,Webservice,返回带有特定字符串的json对象

翁硕
2023-03-14

我对Spring靴开发很陌生,我需要一些帮助。

我正在使用JPA /HibernateSpring和CRU存储库创建一个可恢复的Web服务。(json 格式)

我有以下桌位轨迹:

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

}

控制器:

@Controller
@RequestMapping(path="rest/music")
public class TrackController {

    @Autowired
    private TrackRepository trackRepository;

    @GetMapping(path="/all")
    public @ResponseBody Iterable<Track> getAllTrack() {
        return trackRepository.findAll();
    }

    @GetMapping(path="/id")
    public @ResponseBody Iterable<Track> 
    getTrackById(@RequestParam("id") int id){
        return trackRepository.findByid(id);

    }
    @GetMapping(path="/public")
    public @ResponseBody Iterable<Track> 
    getPublicTrack(){
        return ...working

    }
    @GetMapping(path="/private")
    public @ResponseBody Iterable<Track> 
    getPrivateTrack(){
        return ...working

    }

}

所以我可以得到所有的Track或通过id搜索它们。

现在我的问题来了,我怎样才能返回所有电影名以“公共”或“私人”开头的音轨。

所以我得到了json的回复,比如:

私人:

[
       {
            "id": 7,
            "filename": "private/77777/Cool"
       }
       {
            "id": 8,
            "filename": "private/88888/Cool"
       }
       {
            "id": 9,
            "filename": "private/99999/Cool"
       }
]

我需要过滤文件名字符串,然后...我就是找不到解决办法

共有1个答案

党祖鹤
2023-03-14

可以使用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();
}
 类似资料:
  • 所以我得到了一个xml文件从肥皂服务(我无法控制)。它返回了一个xmlns,这导致了简单的XML问题。我正在运行一个str_replace来解决这个问题,但是现在simpleXML只返回一个空对象。XML结构看起来很好,没有错误,只是一个空对象。 返回:SimpleXMLElement对象() str replace之前的XML源是: 更换后: 任何帮助都将不胜感激,这快把我逼疯了! ----因此

  • 问题内容: 我正在开发一个使用JSON进行服务器通信的Android应用,当我尝试解析json文件时遇到了一个奇怪的问题。 这是我来自服务器的json 我通过调用地址Json-object 获得City的价值。对于这种情况,我期望为空(这是optString的意思吗?),但实际上它包含字符串“ null”。因此,进一步的null或isEmpty- checks将返回false,因为String包含

  • 我有一个带有自定义对象的ArrayList。我想在这个ArrayList中搜索字符串。 因此,我希望有一个函数在我的ArrayList中搜索所有的“name”字符串,例如5个对象。

  • 我的目标是创建一个Rest控制器,该控制器将返回一个对象(我们称之为Car)。这个Rest控制器正在调用另一个Rest API(使用设置令牌并被授权进行调用所需的头),以便从不同的endpoint获取不同的数据,以便将它们混合在一起。就像如果你问特斯拉大约2个不同的汽车模型创造一个新的疯狂的汽车! 问题是,另一个API给我的对象看起来像(实际上我收到28个不同类型的字段,int、string、st

  • 我正在开发一个使用JSON进行服务器通信的Android应用程序,当我试图解析我的json文件时,我遇到了一个奇怪的问题。 这是来自服务器的json 我通过调用字符串City=address来获取City的值。我的地址Json对象上的optString(“city”,“”)。对于这种情况,我希望城市是空的(这就是optString在这里的目的,不是吗?)但实际上它包含字符串“null”。因此,进一

  • 我有一个Spring MVC控制器,方法如下: 它位于一个开始如下所示的控制器内部: 我使用的是Spring WebMVC 4.1.3和Jackson 2.4.3。我尝试在RequestMapping中添加一个“produces”属性,表示它应该返回JSON。在本例中,发回的Content-Type属性是“application/json”,但仍然没有引用测试字符串。 我可以通过调用JSON库将J